Commit Graph

65 Commits

Author SHA1 Message Date
Martin Storsjö 07ec1f2140 rtpenc: Fix setting the max packet size
This fixes cases where the user had specified one desired MTU
via an option, and the protocol indicates another one.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-29 16:48:01 +02:00
Martin Storsjö ba605cef79 rtpenc: Expose the max packet size via an avoption
This allows opting for a lower MTU than what the AVIOContext
indicated, and allows writing into outputs that don't indicate
an MTU at all (such as plain files, which is useful for testing).

This also allows querying for the MTU via the avoption.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 21:32:52 +02:00
Martin Storsjö f553462041 rtpenc: Move max_packet_size to a context variable
This is in preparation for exposing this via an avoption.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 21:32:52 +02:00
Martin Storsjö 7337484ed2 rtpenc: Add an option for not sending RTCP packets
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 21:32:52 +02:00
Martin Storsjö ada4e362b9 rtpenc: Add an error message
Also return a proper error code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 16:30:09 +02:00
Martin Storsjö c4584f3c1f rtpenc: Allow packetizing H263 according to the old RFC 2190
According to newer RFCs, this packetization scheme should only
be used for interfacing with legacy systems.

Implementing this packetization mode properly requires parsing
the full H263 bitstream to find macroblock boundaries (and knowing
their macroblock and gob numbers and motion vector predictors).

This implementation tries to look for GOB headers (which
can be inserted by using -ps <small number>), but if the GOBs
aren't small enough to fit into the MTU, the packetizer blindly
splits packets at any offset and claims it to be a GOB boundary
(by using Mode A from the RFC). While not correct, this seems
to work with some receivers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 15:27:52 +02:00
Martin Storsjö c2ff63e3ac rtpenc: Move the trailing comma into FF_RTP_FLAG_OPTS
This simplifies adding more flags to the macro.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 15:27:42 +02:00
Martin Storsjö ba83ac4c27 rtpenc: Write a log message if the max packet size is too small
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-10 10:48:51 +02:00
Martin Storsjö 04403ec2e4 rtpenc: Add support for G726 audio
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-01 23:19:25 +02:00
Martin Storsjö 77e0c7584b rtpenc: Change rtp_send_samples to handle sample sizes other than even bytes
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-01 23:19:22 +02:00
Martin Storsjö 2d31d890bf rtpenc: Cast a rescaling parameter to int64_t
This avoids overflow if frame_size is over 2147, since both
frame_size and AV_TIME_BASE are plain integers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-01 23:19:14 +02:00
Anton Khirnov c3f9ebf743 lavf: make av_set_pts_info private.
It's supposed to be called only from (de)muxers.
2011-11-30 20:34:45 +01:00
Martin Storsjö 9f938ca5e6 rtpenc: Set a default video codec
avconv doesn't map video streams to a muxer without specifying a
manual stream mapping if the default video codec is CODEC_ID_NONE.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-10-17 22:02:20 +03:00
Anton Khirnov 145f741e11 AVOptions: rename FF_OPT_TYPE_* => AV_OPT_TYPE_* 2011-10-12 16:51:16 +02:00
Rafaël Carré 9152880e95 rtpenc: Add a payload type private option
Specifying the payload type is useful when the type number has
already been negotiated before creating the stream, for example
in SIP protocol.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-09-26 21:54:57 +03:00
Rafaël Carré 0c378ea1f7 rtp: factorize dynamic payload type fallback
Move the identical code in rtp_write_header() and
ff_sdp_write_media() inside ff_rtp_get_payload_type()

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-09-23 22:00:24 +02:00
Anton Khirnov dfc2c4d900 lavf: use designated initialisers for all (de)muxers.
It's more readable and less prone to breakage.
2011-07-17 06:58:37 +02:00
Mans Rullgard 0ebcdf5cda Do not include mathematics.h in avutil.h
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 21:42:06 +01:00
Martin Storsjö 635fac9af1 rtpenc: Declare the rtp flags private AVOptions in rtpenc.h
This allows other muxers that chain a RTP muxer to declare
the same options easily.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-06-10 10:50:08 +03:00
Juan Carlos Rodriguez 0832122880 rtpenc: MP4A-LATM payload support
This is enabled with an AVOption on the RTP muxer. The SDP
generator looks for a latm flag in the rtpflags field.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-06-10 10:49:20 +03:00
Mans Rullgard 2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Anton Khirnov b7f2fdde74 avio: rename put_flush_packet -> avio_flush
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-16 22:59:39 -04:00
Anton Khirnov e8bb2e2439 avio: deprecate url_fget_max_packet_size
AVIOContext.max_packet_size should be used directly instead.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-07 12:25:36 -05:00
Anton Khirnov 77eb5504d3 avio: avio: avio_ prefixes for put_* functions
In the name of consistency:
put_byte           -> avio_w8
put_<type>         -> avio_w<type>
put_buffer         -> avio_write

put_nbyte will be made private
put_tag will be merged with avio_put_str

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-21 14:25:15 -05:00
Luca Barbato dfd2a005eb Replace dprintf with av_dlog
dprintf clashes with POSIX.1-2008
2011-01-29 23:55:37 +01:00
Diego Elio Pettenò c6610a216e Prefix all _demuxer, _muxer, _protocol from libavformat and libavdevice.
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.
2011-01-26 22:10:09 +00:00
Martin Storsjö 35b0169484 RTP/VP8: Update the warning about the VP8 payload
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
2010-12-05 11:45:57 +00:00
Martin Storsjö 0048a2a8d3 Handle G.722 in RTP, and all the exceptions mandated in RFC 3551
Originally committed as revision 25125 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-15 17:35:39 +00:00
Josh Allmann 7f3468d392 rtp: Replace hardcoded RTCP packet types with defines
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24912 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-25 09:15:31 +00:00
Josh Allmann 7b18d94cb3 Add RTP packetization of VP8
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24797 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-16 14:21:17 +00:00
Josh Allmann 91af5601c1 Add RTP packetization of Theora and Vorbis
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-07 11:16:07 +00:00
Måns Rullgård 81f460a373 rtpenc: remove unnecessary #include unistd.h
Originally committed as revision 24071 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-06 11:42:48 +00:00
Luca Abeni 8a2679ada4 Simplify (no need to check for st->codec->extradata) and correct
(extradata_size must be at least 5 bytes) the H.264 MP4 syntax check
in rtpenc.c

Originally committed as revision 23638 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-17 10:30:52 +00:00
Luca Abeni 8b889b3480 If the video stream is H.264 with MP4 syntax, store the NAL lenght size in
the RTP muxer context (it will be used later for splitting frames in NALs)

Originally committed as revision 23625 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-16 12:59:47 +00:00
Martin Storsjö 576fb48e6d Make ff_random_get_seed public, rename to av_get_random_seed, export the header
Keep an old ff_ named function for binary compatibility until the
next major bump.

Originally committed as revision 23254 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-23 08:53:40 +00:00
Stefano Sabatini 72415b2adb Define AVMediaType enum, and use it instead of enum CodecType, which
is deprecated and will be dropped at the next major bump.

Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
Martin Storsjö 4c1202f76e Initialize ssrc and base_timestamp using ff_random_get_seed()
Originally committed as revision 22706 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-28 08:48:45 +00:00
Martin Storsjö b1d55e5e4f Use AVFormatContext.start_time_realtime in the RTP muxer
Originally committed as revision 22543 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-15 10:37:12 +00:00
Martin Storsjö 594a9aebbe Make the ntp_time function available to other parts of libavformat, as ff_ntp_time
Originally committed as revision 22438 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-10 22:21:39 +00:00
Timo Teräs 4e8052ddad Fix syncronisation for streams with a high encoding delay.
Patch by Timo Teräs (timo DOT teras AT iki DOT fi)

Originally committed as revision 21743 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-10 19:33:08 +00:00
Luca Abeni 3f60d2d327 Remove the inclusion of unneeded headers
Originally committed as revision 21193 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-13 18:18:21 +00:00
Luca Abeni 759dc2b6cc Remove outdated comments.
Originally committed as revision 20983 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-30 17:12:29 +00:00
Luca Abeni d3d1eae659 Remove a useless local variable.
Originally committed as revision 20946 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-28 13:41:09 +00:00
Luca Abeni cd7bfe4079 Remove outdated comment
Originally committed as revision 20945 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-28 13:38:21 +00:00
Luca Abeni b3fbe02c86 Remove an unneeded local variable.
Originally committed as revision 20944 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-28 13:19:54 +00:00
Luca Abeni 6399c17d54 Use different dynamic payload types for audio and video.
Originally committed as revision 20940 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-27 21:31:10 +00:00
Stefano Sabatini 9106a698e7 Rename bitstream.h to get_bits.h.
Originally committed as revision 18494 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-13 16:20:26 +00:00
Martin Storsjö 08e696c0b2 Add support for AMR audio in the RTP muxer
patch by Martin Storsjö (martin AT martin DOT st)

Originally committed as revision 18375 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-08 07:16:14 +00:00
Martin Storsjö 9edfaf3c6c Add support for H.263 video in the RTP muxer
patch by Martin Storsjö (martin AT martin DOT st)

Originally committed as revision 18347 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-07 06:41:55 +00:00
Luca Abeni 0766c3ee98 Make rtp_write_header() fail in case of unsupported payload type
Originally committed as revision 18204 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-27 21:36:44 +00:00