[FFmpeg-cvslog] r20685 - in trunk/libavformat: rtmppkt.c rtmpproto.c
kostya
subversion
Tue Dec 1 17:08:44 CET 2009
Author: kostya
Date: Tue Dec 1 17:08:44 2009
New Revision: 20685
Log:
Full-header RTMP packets contain real timestamp, others contain timestamp
difference, so make all read packets store absolute timestamp.
As a consequence, we don't need to track audio/video timestamps separately
any longer in protocol handler.
Modified:
trunk/libavformat/rtmppkt.c
trunk/libavformat/rtmpproto.c
Modified: trunk/libavformat/rtmppkt.c
==============================================================================
--- trunk/libavformat/rtmppkt.c Tue Dec 1 16:13:23 2009 (r20684)
+++ trunk/libavformat/rtmppkt.c Tue Dec 1 17:08:44 2009 (r20685)
@@ -116,6 +116,8 @@ int ff_rtmp_packet_read(URLContext *h, R
return AVERROR(EIO);
timestamp = AV_RB32(buf);
}
+ if (hdr != RTMP_PS_TWELVEBYTES)
+ timestamp += prev_pkt[channel_id].timestamp;
}
if (ff_rtmp_packet_create(p, channel_id, type, timestamp, data_size))
return -1;
Modified: trunk/libavformat/rtmpproto.c
==============================================================================
--- trunk/libavformat/rtmpproto.c Tue Dec 1 16:13:23 2009 (r20684)
+++ trunk/libavformat/rtmpproto.c Tue Dec 1 17:08:44 2009 (r20685)
@@ -63,8 +63,6 @@ typedef struct RTMPContext {
uint8_t* flv_data; ///< buffer with data for demuxer
int flv_size; ///< current buffer size
int flv_off; ///< number of bytes read from current buffer
- uint32_t video_ts; ///< current video timestamp in milliseconds
- uint32_t audio_ts; ///< current audio timestamp in milliseconds
} RTMPContext;
#define PLAYER_KEY_OPEN_PART_LEN 30 ///< length of partial key used for first client digest signing
@@ -515,13 +513,6 @@ static int get_packet(URLContext *s, int
uint8_t *p;
uint32_t ts = rpkt.timestamp;
- if (rpkt.type == RTMP_PT_VIDEO) {
- rt->video_ts += rpkt.timestamp;
- ts = rt->video_ts;
- } else if (rpkt.type == RTMP_PT_AUDIO) {
- rt->audio_ts += rpkt.timestamp;
- ts = rt->audio_ts;
- }
// generate packet header and put data into buffer for FLV demuxer
rt->flv_off = 0;
rt->flv_size = rpkt.data_size + 15;
More information about the ffmpeg-cvslog
mailing list