1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

60 Commits

Author SHA1 Message Date
Anton Khirnov
9200514ad8 lavf: replace AVStream.codec with AVStream.codecpar
Currently, AVStream contains an embedded AVCodecContext instance, which
is used by demuxers to export stream parameters to the caller and by
muxers to receive stream parameters from the caller. It is also used
internally as the codec context that is passed to parsers.

In addition, it is also widely used by the callers as the decoding (when
demuxer) or encoding (when muxing) context, though this has been
officially discouraged since Libav 11.

There are multiple important problems with this approach:
    - the fields in AVCodecContext are in general one of
        * stream parameters
        * codec options
        * codec state
      However, it's not clear which ones are which. It is consequently
      unclear which fields are a demuxer allowed to set or a muxer allowed to
      read. This leads to erratic behaviour depending on whether decoding or
      encoding is being performed or not (and whether it uses the AVStream
      embedded codec context).
    - various synchronization issues arising from the fact that the same
      context is used by several different APIs (muxers/demuxers,
      parsers, bitstream filters and encoders/decoders) simultaneously, with
      there being no clear rules for who can modify what and the different
      processes being typically delayed with respect to each other.
    - avformat_find_stream_info() making it necessary to support opening
      and closing a single codec context multiple times, thus
      complicating the semantics of freeing various allocated objects in the
      codec context.

Those problems are resolved by replacing the AVStream embedded codec
context with a newly added AVCodecParameters instance, which stores only
the stream parameters exported by the demuxers or read by the muxers.
2016-02-23 17:01:58 +01:00
Martin Storsjö
2e814d0329 rtpenc: Simplify code by introducing a macro for rescaling NTP timestamps
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-31 21:12:34 +03:00
Luca Barbato
8034130e06 rtp: set the payload type as stream id
Support multiple video/audio streams with different format in the
same session.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-11-14 20:38:51 +01:00
Martin Storsjö
0de9380be5 rtp: Update the check for distinguishing between RTP and RTCP
Also add enums for more RTCP packet types, according to the IANA
list of registered types.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 23:10:20 +03:00
Anton Khirnov
36ef5369ee Replace all CODEC_ID_* with AV_CODEC_ID_* 2012-08-07 16:00:24 +02:00
Diego Biurrun
09f211987c misc typo and wording fixes 2012-07-03 17:35:11 +02:00
Martin Storsjö
298a587f44 rtp: Factorize the check for distinguishing RTCP packets from RTP
The binary doesn't change after this patch.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-16 17:45:33 +01:00
Diego Biurrun
da9cea77e3 Fix a bunch of common typos. 2011-12-11 00:32:25 +01: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é
142887741f rtp: Correct ff_rtp_get_payload_type documentation
Since 0c378ea1f, it can't fail anymore.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-09-26 21:54:14 +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
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
Martin Storsjö
b5c4bb989d rtpenc_xiph: Set the ident value via a define
Originally committed as revision 24749 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-09 10:31:59 +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
Luca Abeni
3aa7ac6dd2 Document ff_rtp_codec_id()
Originally committed as revision 17666 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-28 19:34:50 +00:00
Luca Abeni
d3da8a4565 Fix typo in a comment
Originally committed as revision 17664 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-28 18:23:19 +00:00
Luca Abeni
c3efd98c09 Document ff_rtp_enc_name()
Originally committed as revision 17663 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-28 18:21:43 +00:00
Luca Abeni
d3a5794958 Document ff_rtp_get_codec_info()
Originally committed as revision 17661 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-28 17:24:56 +00:00
Luca Abeni
bf6d981806 Remame rtp_get_codec_info() to ff_rtp_get_codec_info(), as it is not
a static function

Originally committed as revision 17390 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-17 08:12:51 +00:00
Luca Abeni
e5f483c604 Move to rtp.h the prototypes of all the functions defined in rtp.c
Originally committed as revision 17389 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-17 08:09:34 +00:00
Luca Abeni
b0a880b38b Document ff_rtp_get_payload_type()
Originally committed as revision 17365 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-16 10:21:14 +00:00
Luca Abeni
0550b58f4e Rename rtp_get_payload_type() to ff_rtp_get_payload_type(), as it is not
a static function

Originally committed as revision 17364 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-16 09:36:21 +00:00
Luca Abeni
18c7b354c5 Move RTP_MAX_PACKET_LENGTH to rtpdec.h: it is not used in the muxer anymore
Originally committed as revision 17023 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-06 20:42:21 +00:00
Luca Abeni
302879cb36 Split rtp.h in rtp.h, rtpdec.h, and rtpenc.h
Originally committed as revision 17016 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-06 10:35:52 +00:00
Ronald S. Bultje
1a45a9f4c0 Add "AVFormatContext *ctx" (that being the RTSP demuxer's) as first argument
to the parse_packet() function pointer in RTPDynamicProtocolHandlers. This
allows these functions to peek back and retrieve values from the demuxer's
context (or RTSPState). The ASF/RTP payload parser will use this to be able
to parse SDP values (which occur even before the payload ID is given), store
them in the RTSPState and then retrieve them while parsing payload data. See
"[PATCH] RTSP-MS 13/15: add RTSP demuxer AVFormatContext to parse_packet()
function pointer (was: transport context)" mailinglist thread.

Originally committed as revision 17015 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-06 01:37:19 +00:00
Luca Abeni
21da81d784 Introduce a new num_frames field in RTPDemuxContext so that rtp_aac.c
does not need to abuse read_buf_index

Originally committed as revision 17004 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-05 14:53:25 +00:00
Luca Abeni
20631a9c15 Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
Originally committed as revision 16817 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-27 12:23:16 +00:00
Diego Biurrun
406792e7b0 cosmetics: Remove pointless period after copyright statement non-sentences.
Originally committed as revision 16684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-19 15:46:40 +00:00
Luca Abeni
be73a544af Rename rtp_payload_data_t to avoid clashes with the POSIX namespace
Originally committed as revision 16115 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-13 23:25:19 +00:00
Luca Abeni
1afe09d515 Remove useless typedef
Originally committed as revision 16114 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-13 23:20:05 +00:00
Luca Abeni
d5574b2839 Remove unused types
Originally committed as revision 16113 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-13 23:03:34 +00:00
Ronald S. Bultje
99a1d1915e Remove access into RTPDemuxContext in rtsp.c, which allows making it opaque
(and thus preparing for the introduction of RDTDemuxContext) in a next patch.
See discussion in "RDT/Realmedia patches #2" thread on ML.

Originally committed as revision 15542 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-04 04:16:44 +00:00
Stefano Sabatini
987903826b Globally rename the header inclusion guard names.
Consistently apply this rule: the guard name is obtained from the
filename by stripping the leading "lib", converting '/' and '.'  to
'_' and uppercasing the resulting name. Guard names in the root
directory have to be prefixed by "FFMPEG_".

Originally committed as revision 15120 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-31 07:39:47 +00:00
Michael Niedermayer
c5e56a813b Revert r14497
Log:
	Add missing header #includes.
Policy violation (change not approved by maintainer)
and while discussions where ongoing and no consensus has been reached.

Originally committed as revision 14500 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-01 22:29:29 +00:00
Diego Biurrun
2e11268ea9 Add missing header #includes.
Originally committed as revision 14497 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-01 16:29:26 +00:00
Diego Biurrun
245976da2a Use full path for #includes from another directory.
Originally committed as revision 13098 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-09 11:56:36 +00:00
Diego Pettenò
7d51edddd4 Make AVRtpPayloadTypes static and constant
Patch by Diego 'Flameeyes' Pettenò (flameeyes AT gmail DOT com)

Originally committed as revision 11432 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-06 10:00:04 +00:00
Luca Abeni
a385446f40 Remove prototype for non-existent function
Originally committed as revision 10862 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-26 11:36:11 +00:00
Diego Biurrun
5b21bdabe4 Add FFMPEG_ prefix to all multiple inclusion guards.
Originally committed as revision 10765 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-17 09:37:46 +00:00
Aurelien Jacobs
b156b88c13 rtp and rtsp demuxer declarations are not part of public API
Originally committed as revision 10474 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-10 22:48:42 +00:00
Aurelien Jacobs
dde1f9285a *_protocol are not part of public API
Originally committed as revision 10472 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-10 18:11:13 +00:00
Måns Rullgård
99545457bf include all prerequisites in header files
Originally committed as revision 9344 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-16 22:59:13 +00:00
Panagiotis Issaris
bdd54e3758 Doxygenize the unaltered comments for the AUHeaders structure.
Originally committed as revision 8249 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-05 13:43:16 +00:00
Panagiotis Issaris
01f132a126 Doxygenize the unaltered comments for the rtp_payload_data_s struct.
Originally committed as revision 8248 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-05 13:42:33 +00:00
Panagiotis Issaris
190e507be3 Doxygenize the unaltered comments for the RTP_MAX_SDES definition.
Originally committed as revision 8247 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-05 12:15:32 +00:00
Panagiotis Issaris
01c9c33a59 Doxygenize the existing comments without altering the actual contents of the
comment.

Originally committed as revision 8246 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-05 12:14:29 +00:00
Panagiotis Issaris
7874024062 Move rtp_check_and_send_back_rr()'s unaltered comments to the header file.
Originally committed as revision 8234 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-04 23:29:14 +00:00
Panagiotis Issaris
1dd7345abc Move rtp_get_payload_type()'s unaltered comments to the header file.
Originally committed as revision 8233 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-04 23:27:59 +00:00
Diego Biurrun
804de96a83 cosmetics: fix usefuLL --> usefuL typo
Originally committed as revision 8061 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-22 00:07:42 +00:00
Luca Barbato
a58b82f874 Missing prototype added
Originally committed as revision 7760 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-01-29 15:02:57 +00:00