mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
rtpdec: Allow depacketizers to specify that pkt->pts should be left as AV_NOPTS_VALUE
Originally committed as revision 24234 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
49d3aab764
commit
d74c6145fb
@ -375,7 +375,7 @@ rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx,
|
|||||||
*/
|
*/
|
||||||
static void finalize_packet(RTPDemuxContext *s, AVPacket *pkt, uint32_t timestamp)
|
static void finalize_packet(RTPDemuxContext *s, AVPacket *pkt, uint32_t timestamp)
|
||||||
{
|
{
|
||||||
if (s->last_rtcp_ntp_time != AV_NOPTS_VALUE) {
|
if (s->last_rtcp_ntp_time != AV_NOPTS_VALUE && timestamp != RTP_NOTS_VALUE) {
|
||||||
int64_t addend;
|
int64_t addend;
|
||||||
int delta_timestamp;
|
int delta_timestamp;
|
||||||
|
|
||||||
@ -408,7 +408,9 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt,
|
|||||||
if (!buf) {
|
if (!buf) {
|
||||||
/* return the next packets, if any */
|
/* return the next packets, if any */
|
||||||
if(s->st && s->parse_packet) {
|
if(s->st && s->parse_packet) {
|
||||||
timestamp= 0; ///< Should not be used if buf is NULL, but should be set to the timestamp of the packet returned....
|
/* timestamp should be overwritten by parse_packet, if not,
|
||||||
|
* the packet is left with pts == AV_NOPTS_VALUE */
|
||||||
|
timestamp = RTP_NOTS_VALUE;
|
||||||
rv= s->parse_packet(s->ic, s->dynamic_protocol_context,
|
rv= s->parse_packet(s->ic, s->dynamic_protocol_context,
|
||||||
s->st, pkt, ×tamp, NULL, 0, flags);
|
s->st, pkt, ×tamp, NULL, 0, flags);
|
||||||
finalize_packet(s, pkt, timestamp);
|
finalize_packet(s, pkt, timestamp);
|
||||||
|
@ -34,6 +34,8 @@ typedef struct RTPDynamicProtocolHandler_s RTPDynamicProtocolHandler;
|
|||||||
#define RTP_MIN_PACKET_LENGTH 12
|
#define RTP_MIN_PACKET_LENGTH 12
|
||||||
#define RTP_MAX_PACKET_LENGTH 1500 /* XXX: suppress this define */
|
#define RTP_MAX_PACKET_LENGTH 1500 /* XXX: suppress this define */
|
||||||
|
|
||||||
|
#define RTP_NOTS_VALUE ((uint32_t)-1)
|
||||||
|
|
||||||
typedef struct RTPDemuxContext RTPDemuxContext;
|
typedef struct RTPDemuxContext RTPDemuxContext;
|
||||||
RTPDemuxContext *rtp_parse_open(AVFormatContext *s1, AVStream *st, URLContext *rtpc, int payload_type);
|
RTPDemuxContext *rtp_parse_open(AVFormatContext *s1, AVStream *st, URLContext *rtpc, int payload_type);
|
||||||
void rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx,
|
void rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx,
|
||||||
|
Loading…
Reference in New Issue
Block a user