Our poll implementation does not iterate over the pollfd array properly
while setting the revents.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit 9ac2085dbf)
The current implementation has a bug, it is returning the stream index
in the found program, and not the stream index in the list of all
streams. The attached patch fixes this issue.
Signed-off-by: Mans Rullgard <mans@mansr.com>
It is pretty hopeless that other considerable projects will adopt
libavutil alone in other projects. Projects that need small footprint
are better off with more specialized libraries such as gnulib or rather
just copy the necessary parts that they need. With this in mind, nobody
is helped by having libavutil and libavcore split. In order to ease
maintenance inside and around FFmpeg and to reduce confusion where to
put common code, avcore's functionality is merged (back) to avutil.
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Fixes errors after a few minutes (first ping) when playing back
mmst://wm.bbc.co.uk/wms/bbc7coyopa/bbc7_-_friday_0430.wma
(cherry picked from commit 275189a2bd)
There is a check for HAVE_BIGENDIAN when outputting the IEC 61937
stream. On big-endian systems the payload data is not byteswapped,
causing in effect the outputted payload data to be in a different byte
order on big-endian than on little-endian systems.
However, the IEC 61937 preamble (and the final odd byte if present) is
always outputted in the same byte order. This means that on big-endian
systems the headers have a different byte order than the payload,
preventing useful use of the output.
Fix that by outputting the data in a format suitable for sending to an
audio device in S16LE format by default. Output as big-endian (S16BE)
is added as an AVOption. This makes the muxer output the same on all
archs by default.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit 57f2c9aed9)
There is a check for HAVE_BIGENDIAN when outputting the IEC 61937
stream. On big-endian systems the payload data is not byteswapped,
causing in effect the outputted payload data to be in a different byte
order on big-endian than on little-endian systems.
However, the IEC 61937 preamble (and the final odd byte if present) is
always outputted in the same byte order. This means that on big-endian
systems the headers have a different byte order than the payload,
preventing useful use of the output.
Fix that by outputting the data in a format suitable for sending to an
audio device in S16LE format by default. Output as big-endian (S16BE)
is added as an AVOption. This makes the muxer output the same on all
archs by default.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
This is used for mapping AVStreams back to their corresponding
RTSPStream. Since d9c0510, the RTSPStream pointer isn't stored in
AVStream->priv_data any longer, breaking this mapping from AVStreams
to RTSPStreams.
Also, we don't need to clear the priv_data in rdt cleanup any longer,
since it isn't set to duplicate pointers.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit b2dd842d21)
it's not touched anywhere in ffmpeg, the code setting it was removed
over two years ago (e9b78eeba2).
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit b0294c80d3)
This is used for mapping AVStreams back to their corresponding
RTSPStream. Since d9c0510, the RTSPStream pointer isn't stored in
AVStream->priv_data any longer, breaking this mapping from AVStreams
to RTSPStreams.
Also, we don't need to clear the priv_data in rdt cleanup any longer,
since it isn't set to duplicate pointers.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
it's not touched anywhere in ffmpeg, the code setting it was removed
over two years ago (e9b78eeba2).
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
This code will be later split out into a function which takes a 'size'
argument, so I'm keeping the name 'sizeX' here.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 0b1d291a71)
Only trivial splits are done here -- i.e. copy/paste + reindent +
missing variable declarations.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit c1fea23070)
Keep the original corner case behaviour, where reuse is enabled
for the case where no argument is given to the reuse url option.
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 00952be424)
This code will be later split out into a function which takes a 'size'
argument, so I'm keeping the name 'sizeX' here.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Keep the original corner case behaviour, where reuse is enabled
for the case where no argument is given to the reuse url option.
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
It is useful for applications that hand input data directly to lavf via
a ByteIOContext.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 3940caad02)
There is no need to pass the ByteIOContext via a pointer to a pointer
anymore.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit aad216fd7e)
Currently (since the data_offset fix) the ogg demuxer assumes that
after the first non-header packets in any stream no more header packets
will follow.
This is not guaranteed, so change the code back again to wait until it
has finished the headers for all streams before returning from ogg_get_headers.
This fixes issue 2428.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 6bd69e6ada)
This validate the length of a mkv element directly after reading
it.
This has the advantage that it is easy to add new limits and makes
it less likely to forget to add checks and also avoids issues like
bits of the length value above the first 32 being ignored because
the parsing functions only takes an int.
Previously discussed in the "mkv 0-byte integer parsing" thread.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 95ec3d4cac)
Change int64_t into a int, which caused this compiler warning:
libavformat/oggparseskeleton.c:64: warning: passing argument 2 of ‘av_reduce’ from incompatible pointer type
(cherry picked from commit 69ff149204)
Use avio functions instead of bytestream ones (also drops dependency on
lavc and removes a bunch of warnings).
Drop custom version of avio_get_str16 and use that instead.
Tested on mewmew-ssa.avi sample.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 47fdf00a77)
Makes playing QDMC files in MPlayer work when using the libavformat demuxer.
Problem was that the extradata was not passed from demuxer to decoder.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit ed19fafd48)
Currently (since the data_offset fix) the ogg demuxer assumes that
after the first non-header packets in any stream no more header packets
will follow.
This is not guaranteed, so change the code back again to wait until it
has finished the headers for all streams before returning from ogg_get_headers.
This fixes issue 2428.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This validate the length of a mkv element directly after reading
it.
This has the advantage that it is easy to add new limits and makes
it less likely to forget to add checks and also avoids issues like
bits of the length value above the first 32 being ignored because
the parsing functions only takes an int.
Previously discussed in the "mkv 0-byte integer parsing" thread.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Change int64_t into a int, which caused this compiler warning:
libavformat/oggparseskeleton.c:64: warning: passing argument 2 of ‘av_reduce’ from incompatible pointer type
Use avio functions instead of bytestream ones (also drops dependency on
lavc and removes a bunch of warnings).
Drop custom version of avio_get_str16 and use that instead.
Tested on mewmew-ssa.avi sample.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Makes playing QDMC files in MPlayer work when using the libavformat demuxer.
Problem was that the extradata was not passed from demuxer to decoder.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit ad3cffb68f)
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 90441276e4)
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit fe174fc8fc)
If required, the caller can do this itself. ff_write_chained rescales
timestamps as necessary, and all current callers of rtpenc_chain
use ff_write_chained, making this timebase copy unnecessary.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 397ffde115)
This function is useful for freeing data structures allocated by
muxers, which currently have to be freed manually by the caller.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit f124b087ee)
This avoids having the chained AVStream->codec point to the same
AVCodecContext owned by the outer AVStream. The downside is that
changes to the AVCodecContext made after calling av_write_header
cannot be detected automatically within the chained muxer.
This avoids having to manually unlink the chained AVStream->codec
by setting it to null before freeing the chained muxer via generic
freeing functions.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 1338dc0823)
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 51b317d2e9)
If required, the caller can do this itself. ff_write_chained rescales
timestamps as necessary, and all current callers of rtpenc_chain
use ff_write_chained, making this timebase copy unnecessary.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
This function is useful for freeing data structures allocated by
muxers, which currently have to be freed manually by the caller.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
This avoids having the chained AVStream->codec point to the same
AVCodecContext owned by the outer AVStream. The downside is that
changes to the AVCodecContext made after calling av_write_header
cannot be detected automatically within the chained muxer.
This avoids having to manually unlink the chained AVStream->codec
by setting it to null before freeing the chained muxer via generic
freeing functions.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
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>
(cherry picked from commit 9ad4c65f6f)
This fixes memory leaks in the RTSP muxer and RTP hinting in the
mov muxer present since SVN rev 25418.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit ce41c51b0c)
For mpegts in RTP, there isn't a direct mapping between RTSPStreams
and AVStreams, and the RTSPStream isn't ever stored in
AVStream->priv_data, which was earlier leaked. The fix for this
leak, in ea7f080749, lead to
double frees for other, normal RTP streams.
This patch avoids storing RTSPStreams in AVStream->priv_data, thus
avoiding the double free. The RTSPStreams are always available via
RTSPState->rtsp_streams anyway.
Tested with MS-RTSP, RealRTSP, DSS and mpegts/RTP.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit d9c0510e22)
The bumps are for adding version.h and avio_{get/put}_str functions in
lavf and making av_dlog public in lavu.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
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>
This fixes memory leaks in the RTSP muxer and RTP hinting in the
mov muxer present since SVN rev 25418.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
For mpegts in RTP, there isn't a direct mapping between RTSPStreams
and AVStreams, and the RTSPStream isn't ever stored in
AVStream->priv_data, which was earlier leaked. The fix for this
leak, in ea7f080749, lead to
double frees for other, normal RTP streams.
This patch avoids storing RTSPStreams in AVStream->priv_data, thus
avoiding the double free. The RTSPStreams are always available via
RTSPState->rtsp_streams anyway.
Tested with MS-RTSP, RealRTSP, DSS and mpegts/RTP.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
The bumps are for adding version.h and avio_{get/put}_str functions in
lavf and making av_dlog public in lavu.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
The first part of the metadata, the "vendor" string, is required by
libvorbis, it will refuse to play when it is not available.
Also we do not currently parse that part into metadata so it would also
be lost if we removed it as well.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 8cb3c557a9)
The first part of the metadata, the "vendor" string, is required by
libvorbis, it will refuse to play when it is not available.
Also we do not currently parse that part into metadata so it would also
be lost if we removed it as well.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Around 01/28/11 18:56, Ronald S. Bultje scribbled:
> That patch is now merged, can you submit the update to muxers.texi?
> Then we'll apply the whole thing.
See attached. I hope the documentation is enough.
--
Georgi Chorbadzhiyski
http://georgi.unixsol.org/
From c236024b8254f5c2c45934c30fff390cb0e55a5e Mon Sep 17 00:00:00 2001
From: Georgi Chorbadzhiyski <gf@unixsol.org>
Date: Tue, 25 Jan 2011 13:09:17 +0200
Subject: [PATCH] mpegts: Replace defines in with AVOptions
This patch adds support for setting transport_stream_id,
original_network_id, service_id, pmt_start_pid and start_pid
in mpegts muxer.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 445996aa51)
Around 01/28/11 18:56, Ronald S. Bultje scribbled:
> That patch is now merged, can you submit the update to muxers.texi?
> Then we'll apply the whole thing.
See attached. I hope the documentation is enough.
--
Georgi Chorbadzhiyski
http://georgi.unixsol.org/
From c236024b8254f5c2c45934c30fff390cb0e55a5e Mon Sep 17 00:00:00 2001
From: Georgi Chorbadzhiyski <gf@unixsol.org>
Date: Tue, 25 Jan 2011 13:09:17 +0200
Subject: [PATCH] mpegts: Replace defines in with AVOptions
This patch adds support for setting transport_stream_id,
original_network_id, service_id, pmt_start_pid and start_pid
in mpegts muxer.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
$subject. Have used this for loopback testing with mpegts.c.
-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
[2. text/x-diff; 0001-mpegtsenc-support-CODEC_ID_AAC_LATM.patch]
From 0f7f9db4b7da1793996af6dda84298507703759a Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Sun, 9 Jan 2011 09:45:50 +1100
Subject: [PATCH] mpegtsenc: support CODEC_ID_AAC_LATM
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 4d54df8e07)
poll() is only used by networking code, so the fallback should
only be built if networking is enabled. Also remove CONFIG_FFSERVER
condition from the declarations.
This should fix building on systems without poll(), broken
by a8475bbdb6.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 362d8f7d9e)
Add an error message in case the user requests to write more than one file
and the path does not contain a "%d" or "%0Nd" pattern.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit 4fc9ff0ad6)
According to EN 300 468 section 3.1 (Definitions):
Unless otherwise specified within the present document all
"reserved_future_use" bits is set to "1".
This was not the case for SDT generation so this patch fixes it.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit a7827a17c6)
Avoids an assert when the sample rate is invalid and the timebase
is thus set to e.g. 1/0.
Sample file is http://samples.mplayerhq.hu/ogg/fuzzed-srate-crash.ogg
This is a quick fix for a crash, not a final solution.
Signed-off-by: Mans Rullgard <mans@mansr.com>
VC1 test container always uses time-base 1 ms, so we must convert
from whatever time-base the application gave us to that, otherwise
the video will play at ridiculous speeds.
It would be possible to signal that a container supports only one
time-base and have code in a layer above do the conversion, but
for a single format this seems over-engineered.
$subject. Have used this for loopback testing with mpegts.c.
-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
[2. text/x-diff; 0001-mpegtsenc-support-CODEC_ID_AAC_LATM.patch]
From 0f7f9db4b7da1793996af6dda84298507703759a Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Sun, 9 Jan 2011 09:45:50 +1100
Subject: [PATCH] mpegtsenc: support CODEC_ID_AAC_LATM
Signed-off-by: Mans Rullgard <mans@mansr.com>
poll() is only used by networking code, so the fallback should
only be built if networking is enabled. Also remove CONFIG_FFSERVER
condition from the declarations.
This should fix building on systems without poll(), broken
by a8475bbdb6.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Add an error message in case the user requests to write more than one file
and the path does not contain a "%d" or "%0Nd" pattern.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
According to EN 300 468 section 3.1 (Definitions):
Unless otherwise specified within the present document all
"reserved_future_use" bits is set to "1".
This was not the case for SDT generation so this patch fixes it.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
This also lists the objects from those two libraries as internal (by adding
the ff_ prefix) so that they can then be hidden via linker scripts.
(cherry picked from commit c6610a216e)
The iff.h header only declared one function that is now static, the
libavformat/iff.c source file wasn't using it before. Drop the file
entirely.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 2d162e3825)
The reserved bits between PCR base and extension fields must be
set to 1.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 535638b55f)
The iff.h header only declared one function that is now static, the
libavformat/iff.c source file wasn't using it before. Drop the file
entirely.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Also make it an anonymous structure as never it is accessed by name.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit a3dffc0627)
It will be useful in mp3 demuxer and hopeful some other places.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit 93b78d1210)
Remove two variables that were not used and caused the following
warnings:
CC libavformat/mpegtsenc.o
libavformat/mpegtsenc.c: In function 'mpegts_write_section':
libavformat/mpegtsenc.c:72:18: warning: unused variable 'ts'
libavformat/mpegtsenc.c: In function 'mpegts_insert_null_packet':
libavformat/mpegtsenc.c:586:18: warning: unused variable 'ts'
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 6e78c8ee94)
The dprintf macro is a no-op if DEBUG is not defined, so there
is no need to guard it here.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 6081f8c4e2)
The dprintf macro is no-op when DEBUG is unset, so there is no need to
put it conditional to DEBUG.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 73a0b19ba3)
Also drop some CONFIG_DV_MUXER #ifdefs probably vestigial from before the
split of dvenc and dvdec.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit f0a8676958)
The key string is supposed to contain the equals character,
too. Since the checked string was wrong, and the return value
check was wrong too, it incorrectly seemed to work right before.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 2b0decf60b)
Remove two variables that were not used and caused the following
warnings:
CC libavformat/mpegtsenc.o
libavformat/mpegtsenc.c: In function 'mpegts_write_section':
libavformat/mpegtsenc.c:72:18: warning: unused variable 'ts'
libavformat/mpegtsenc.c: In function 'mpegts_insert_null_packet':
libavformat/mpegtsenc.c:586:18: warning: unused variable 'ts'
Signed-off-by: Mans Rullgard <mans@mansr.com>
The key string is supposed to contain the equals character,
too. Since the checked string was wrong, and the return value
check was wrong too, it incorrectly seemed to work right before.
Signed-off-by: Mans Rullgard <mans@mansr.com>
make the initialization of put clearer
this are the differences between
[FFmpeg-devel] [PATCH 1/3] mp3enc: add support for writing UTF-16 tags
and the already applied 187e23478b
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit 8c3caf7fb1)
make the initialization of put clearer
this are the differences between
[FFmpeg-devel] [PATCH 1/3] mp3enc: add support for writing UTF-16 tags
and the already applied 187e23478b
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
title metadata is only used as fallback if no service_name is available.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit e5fe65512b)
Set service_provider and service_name in mpegts demuxer, previously
name and provider_name were set but since the muxer uses service_provider
and service_name use them.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit e8315e7881)
Apparently some broken taggers prepend a new ID3v2 tag leaving the
existing one intact. Our parser currently reads all tags and overwrites
existing values with supposedly outdated ones.
fixes issue2419
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 75aded8328)
This patch adds support in mpegts muxer for using service_provider and
service_name metadata to set service_provider_name and service_name
fields in SDT.
Example usage:
ffmpeg -i file.ts -f mpegts -re -acodec copy -vcodec copy -f mpegts \
-metadata service_provider="Some provider" \
-metadata service_name="Some Channel" \
"udp://239.0.70.2:5000?pkt_size=1316&ttl=1"
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 69688e71bc)
Set service_provider and service_name in mpegts demuxer, previously
name and provider_name were set but since the muxer uses service_provider
and service_name use them.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Apparently some broken taggers prepend a new ID3v2 tag leaving the
existing one intact. Our parser currently reads all tags and overwrites
existing values with supposedly outdated ones.
fixes issue2419
Signed-off-by: Mans Rullgard <mans@mansr.com>
This patch adds support in mpegts muxer for using service_provider and
service_name metadata to set service_provider_name and service_name
fields in SDT.
Example usage:
ffmpeg -i file.ts -f mpegts -re -acodec copy -vcodec copy -f mpegts \
-metadata service_provider="Some provider" \
-metadata service_name="Some Channel" \
"udp://239.0.70.2:5000?pkt_size=1316&ttl=1"
Signed-off-by: Mans Rullgard <mans@mansr.com>
This should improve duration accuracy slightly and avoids a warning about its
inaccuracy when accurate values are available. Idea by Frank Barchard
Originally committed as revision 26366 to svn://svn.ffmpeg.org/ffmpeg/trunk
If filtered, only packets from the right source address and port
are received.
To test, play back e.g. some mpeg4 video RTSP stream (where the
video stream is the first stream in the presentation) over UDP.
While receiving this stream, send another stream to the same port:
ffmpeg -re -i <whatever> -vcodec mpeg4 -an -f rtp
rtp://127.0.0.1:5000?localport=1234
Normally, the RTSP playback reports lots of errors at this point.
If the RTSP stream has the ?filter_src option enabled, these
interferring packets are ignored.
Originally committed as revision 26246 to svn://svn.ffmpeg.org/ffmpeg/trunk
If the remote address is updated later with this function, the caller
shouldn't set the connect option until in this call.
Originally committed as revision 26245 to svn://svn.ffmpeg.org/ffmpeg/trunk
By calling connect on the UDP socket, only packets from the chosen
peer address and port are received on the socket. This is one
solution to issue 1688.
Originally committed as revision 26244 to svn://svn.ffmpeg.org/ffmpeg/trunk
For MS-RTSP, we don't always get RTCP packets (never?), so the earlier
timestamping code never wrote anything into pkt->pts. The rtpdec_asf
depacketizer just sets the dts of the packet, so if the generic RTP
timestamping is used, too, we get inconsistent timestamps.
Therefore, skip the generic RTP timestamp algorithm if the depacketizer
already has set something.
This fixes "Invalid timestamps" warnings, present since SVN rev 26187.
Originally committed as revision 26241 to svn://svn.ffmpeg.org/ffmpeg/trunk
close the stream.
This way the flushed packets can still reference the still unclosed
format context.
In particular this fixes a spurious error issued when closing the
video4linux2 buffer in mmap_release_buffer(), which tries to access
the file descriptor of an already closed file.
Originally committed as revision 26237 to svn://svn.ffmpeg.org/ffmpeg/trunk
This avoids having a large temporary buffer in the struct used for
storing the rtsp reply headers.
Originally committed as revision 26192 to svn://svn.ffmpeg.org/ffmpeg/trunk
This allows ff_rtsp_parse_line to do more changes directly in RTSPState
when parsing the reply, instead of having to store large amounts of
temporary data in RTSPMessageHeader.
Originally committed as revision 26190 to svn://svn.ffmpeg.org/ffmpeg/trunk
Emitted timestamps in each stream start from 0, for the first received
RTP packet. Once an RTCP packet is received, that one is used for
sync, emitting timestamps that fit seamlessly into the earlier ones.
Originally committed as revision 26187 to svn://svn.ffmpeg.org/ffmpeg/trunk
wav. In that case, DTS can be transmitted through S/PDIF without
the IEC 61937 headers.
Patch by Anssi Hannula, anssi d hannula a iki d fi
Originally committed as revision 26160 to svn://svn.ffmpeg.org/ffmpeg/trunk
Noticed by CrystalP from XBMC.
Patch by Anssi Hannula, anssi d hannula a iki d fi
Originally committed as revision 26130 to svn://svn.ffmpeg.org/ffmpeg/trunk
For example MS-RTSP doesn't have RTPDemuxContexts for all streams.
This fixes issue 2448.
Originally committed as revision 26107 to svn://svn.ffmpeg.org/ffmpeg/trunk
This fixes a crash if we requested TCP interleaved transport, but the
server replies with transport data for UDP. According to the RFC, the
server isn't allowed to respond with another transport type than the
one requested.
Originally committed as revision 26077 to svn://svn.ffmpeg.org/ffmpeg/trunk
This fixes compilation with --disable-everything --enable-<component>,
for all encoders, decoders, muxers, demuxers, parsers, protocols, bsfs,
indevs, outdevs and filters at the moment. (All those that work without
any external dependencies at least.)
Originally committed as revision 26076 to svn://svn.ffmpeg.org/ffmpeg/trunk
This fixes one of the issues found if building with
--disable-everything --enable-muxer=webm
Originally committed as revision 26066 to svn://svn.ffmpeg.org/ffmpeg/trunk
While not mentioned in RFC 4629, this is required for H.263 in
3GPP TS 26.234. It is in practice required for playback with
Android stagefright and on Samsung bada phones.
Originally committed as revision 26062 to svn://svn.ffmpeg.org/ffmpeg/trunk
(largest size according to spec: 64k). Fixes playback of
mmsh://a1635.v24937.c2493.g.vm.akamaistream.net/7/1635/2493/v0001/premrad.download.akamai.com/2493/premiere_rock_report/Country_Report.wma
Patch by Zhentan Feng <spyfeng gmail com>.
Originally committed as revision 26047 to svn://svn.ffmpeg.org/ffmpeg/trunk
This also reverts SVN rev 26016, which incorrectly overwrote the time base
with 90 kHz for all streams, regardless of what was set by the SDP parsing.
The stream that triggered the fix in 26016 still works after this commit.
Originally committed as revision 26022 to svn://svn.ffmpeg.org/ffmpeg/trunk
The generic default is 0/0 and that obviously triggers once the value is used.
Originally committed as revision 26016 to svn://svn.ffmpeg.org/ffmpeg/trunk
This makes it possible to abort a blocking connect call.
Patch by Thomas Guillem, thomas dot guillem at gmail
Originally committed as revision 26014 to svn://svn.ffmpeg.org/ffmpeg/trunk
of returning packets with uninitialized data.
Returning partial packets as for other demuxers is problematice due to
packet scrambling and thus is not done.
Originally committed as revision 25931 to svn://svn.ffmpeg.org/ffmpeg/trunk
ID3v2 tags which no longer works since ID3v2 handling was moved to
generic code.
In addition, in caused false-positives for all files starting with
one or more 0-bytes.
Originally committed as revision 25929 to svn://svn.ffmpeg.org/ffmpeg/trunk
This fixes cases where the RTP time base and the sample rate of the stream
differ. Previously, the AVStream time_base was unconditionally set to
the sample rate (which initially was set to one value when parsing the
rtpmap field in the SDP, but later overridden by an a=SampleRate field).
Additionally, this makes the code actually use the stream time base set
in rtpmap for video codecs, instead of hardcoding it to always be 90 kHz.
Originally committed as revision 25908 to svn://svn.ffmpeg.org/ffmpeg/trunk
This fixes playback of a RealRTSP/MP3 URL from the RTSP samples on
MultimediaWiki.
Originally committed as revision 25906 to svn://svn.ffmpeg.org/ffmpeg/trunk
According to the spec, this type shouldn't ever be used. Nevertheless,
passing it through enables decoding streams which otherwise aren't
decodeable.
Originally committed as revision 25897 to svn://svn.ffmpeg.org/ffmpeg/trunk
The current implementation is incompatible with the latest spec drafts,
this should be communicated clearly to the user.
Originally committed as revision 25887 to svn://svn.ffmpeg.org/ffmpeg/trunk
This fixes PCR drift due to accumulating TS_PACKET_SIZE*8*90000LL/ts->mux_rate each packet, due to rounding errors when mux_rate does not evenly divide 135360000.
This patch also increases the PCR precision to 27 MHz from 90 kHz and takes the location of the PCR data into account (+11 bytes according to the spec).
Originally committed as revision 25864 to svn://svn.ffmpeg.org/ffmpeg/trunk
data packets before the first complete one.
Patch by Aaron Colwell [acolwell chromium org].
Originally committed as revision 25846 to svn://svn.ffmpeg.org/ffmpeg/trunk
This reverts snprintf->av_d2str part of r20840.
With it, track number is exported as a float, which is not
desirable.
Originally committed as revision 25845 to svn://svn.ffmpeg.org/ffmpeg/trunk
This works at least for some people testing it.
Patch by Anssi Hannula, anssi d hannula a iki fi
Originally committed as revision 25834 to svn://svn.ffmpeg.org/ffmpeg/trunk
yet have it, this can happen if the pes stream contain data but no pes header
has been encoutered yet.
Patch by Stephen D'Angelo, SDAngelo at evertz dot com.
Originally committed as revision 25823 to svn://svn.ffmpeg.org/ffmpeg/trunk
Title is already written into special fields designated for it --
per-segment Title, per-chapter ChapString and per-stream Name (yay for
consistent naming). Therefore, don't duplicate it in Tags.
Originally committed as revision 25813 to svn://svn.ffmpeg.org/ffmpeg/trunk
PaletteControl.
This also fixes playback of some files with ffplay (images were
corrupted for a short time after a palette change).
Originally committed as revision 25778 to svn://svn.ffmpeg.org/ffmpeg/trunk
Only works via HDMI.
Patch by Anssi Hannula (anssi d hannula a iki d fi), based on some work
by myself.
Originally committed as revision 25760 to svn://svn.ffmpeg.org/ffmpeg/trunk
files spdif.h and spdif.c.
Patch by Anssi Hannula, anssi d hannula a iki d fi
Originally committed as revision 25715 to svn://svn.ffmpeg.org/ffmpeg/trunk
This fixes a regression since svn rev 24752, where the real_setup pointer
was set incorrectly. The arithmetic with the real_setup_cache pointer
is in units of enum AVDiscard, so the sizeof multiplication should be removed.
Patch by Yuriy Kaminskiy, yumkam at mail dot ru.
Originally committed as revision 25684 to svn://svn.ffmpeg.org/ffmpeg/trunk
This may be needed to avoid calls to implicitly defined functions
(that will be removed by dead code elimination later anyway).
Originally committed as revision 25585 to svn://svn.ffmpeg.org/ffmpeg/trunk
This allows compilation of one of them without requiring the others'
dependencies to be present.
Originally committed as revision 25535 to svn://svn.ffmpeg.org/ffmpeg/trunk
The demuxer inspects the payload type of a received RTP packet and
handles the cases where the content is fully described by the payload type.
Originally committed as revision 25527 to svn://svn.ffmpeg.org/ffmpeg/trunk
Fixes a scr issue reported with dvdauthor ([FFmpeg-user] FFMPEG encoded MPEG-2 video causes error in DVDAuthor)
Originally committed as revision 25512 to svn://svn.ffmpeg.org/ffmpeg/trunk
This indicates that there was no error that needs to be reported to the
caller, so we can move on to parse the next packet immediately, if
available. The only error code that ff_mpegts_parse_packet can return
indicates that there was no packet to return from the provided data, for
which it returns -1.
Originally committed as revision 25496 to svn://svn.ffmpeg.org/ffmpeg/trunk
It may have returned a negative number for an error (e.g. AVERROR(EAGAIN),
if more data is required for it to be able to return a complete packet).
Originally committed as revision 25458 to svn://svn.ffmpeg.org/ffmpeg/trunk
Functions from these files are referenced from utils.c now. This fixes
building with --disable-everything.
Originally committed as revision 25425 to svn://svn.ffmpeg.org/ffmpeg/trunk
This makes the URL handling consistent - the URL hostname is used as
destination for the RTP packets, so the URL port should also belong to that.
Now the options announce_addr= and announce_port specify where the
announcements are sent.
Originally committed as revision 25424 to svn://svn.ffmpeg.org/ffmpeg/trunk
The new object file is added to the SDP demuxer in the makefile, since it
is needed in both the RTSP muxer and demuxer and in the SDP demuxer, due
to the current code coupling.
Originally committed as revision 25410 to svn://svn.ffmpeg.org/ffmpeg/trunk
This allows us to find out the local sending address via getsockname,
otherwise we just get INADDR_ANY (or similar for v6).
This also makes writes return ECONNREFUSED if nobody is listening on the
receiving port.
Originally committed as revision 25405 to svn://svn.ffmpeg.org/ffmpeg/trunk
Not all users of this function will have a full struct sockaddr_storage
available, and casting other sockaddrs to sockaddr_storage is wrong,
while any sockaddr can be cast to a base sockaddr.
Originally committed as revision 25388 to svn://svn.ffmpeg.org/ffmpeg/trunk
The header probably isn't the right permanent place for this function, but
it is quite small, and consensus seems to be that it can stay in the
header for now, instead of creating a new file network.c just for this one.
Originally committed as revision 25387 to svn://svn.ffmpeg.org/ffmpeg/trunk
This fixes roundup issue 2270.
Patch by Robert Schlabbach, robert_s at gmx dot net
Originally committed as revision 25372 to svn://svn.ffmpeg.org/ffmpeg/trunk
If multiple stsd atoms are parsed for the same stream, the old
extradata would be leaked.
Originally committed as revision 25360 to svn://svn.ffmpeg.org/ffmpeg/trunk
This makes the code dependencies correct. Previously, the SDP demuxer
wasn't buildable on its own.
This also reverts rev 25343.
Originally committed as revision 25354 to svn://svn.ffmpeg.org/ffmpeg/trunk
prevents a read-after-close-induced segfault later. Fixes issue 2266.
Patch by qrtt1 <chingyichan dot tw gmail com>.
Originally committed as revision 25349 to svn://svn.ffmpeg.org/ffmpeg/trunk
They reside within a large CONFIG_RTSP_DEMUXER block and are thus pointless.
Originally committed as revision 25343 to svn://svn.ffmpeg.org/ffmpeg/trunk
It is only useful for debugging, so it doesn't have to be shown every time.
Originally committed as revision 25323 to svn://svn.ffmpeg.org/ffmpeg/trunk
that flag to the dca codec. This capability when set
will make sure the codec will initialize the channel
configuration instead of trusting the container. This
fixes issue 2137 and issue 850.
Originally committed as revision 25320 to svn://svn.ffmpeg.org/ffmpeg/trunk
Do the same change for ff_rdt_parse_packet, too, to keep the interfaces
similar.
Originally committed as revision 25289 to svn://svn.ffmpeg.org/ffmpeg/trunk
rather than av_register_protocol(), which is deprecated.
Fix the GCC warning:
avio.c: In function ‘register_protocol’:
avio.c:93: warning: ‘av_register_protocol’ is deprecated (declared at avio.c:86)
Originally committed as revision 25267 to svn://svn.ffmpeg.org/ffmpeg/trunk