Add convergence_duration to AVCodecParserContext.
Patch by Ivan Schreter, schreter gmx net Originally committed as revision 17468 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
							parent
							
								
									e9259f8d18
								
							
						
					
					
						commit
						b1fa494205
					
				@ -30,7 +30,7 @@
 | 
			
		||||
#include "libavutil/avutil.h"
 | 
			
		||||
 | 
			
		||||
#define LIBAVCODEC_VERSION_MAJOR 52
 | 
			
		||||
#define LIBAVCODEC_VERSION_MINOR 17
 | 
			
		||||
#define LIBAVCODEC_VERSION_MINOR 18
 | 
			
		||||
#define LIBAVCODEC_VERSION_MICRO  0
 | 
			
		||||
 | 
			
		||||
#define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
 | 
			
		||||
@ -3033,6 +3033,23 @@ typedef struct AVCodecParserContext {
 | 
			
		||||
     * will be used.
 | 
			
		||||
     */
 | 
			
		||||
    int key_frame;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Time difference in stream time base units from the pts of this
 | 
			
		||||
     * packet to the point at which the output from the decoder has converged
 | 
			
		||||
     * independent from the availability of previous frames. That is, the
 | 
			
		||||
     * frames are virtually identical no matter if decoding started from
 | 
			
		||||
     * the very first frame or from this keyframe.
 | 
			
		||||
     * Is AV_NOPTS_VALUE if unknown.
 | 
			
		||||
     * This field is not the display duration of the current frame.
 | 
			
		||||
     *
 | 
			
		||||
     * The purpose of this field is to allow seeking in streams that have no
 | 
			
		||||
     * keyframes in the conventional sense. It corresponds to the
 | 
			
		||||
     * recovery point SEI in H.264 and match_time_delta in NUT. It is also
 | 
			
		||||
     * essential for some types of subtitle streams to ensure that all
 | 
			
		||||
     * subtitles are correctly displayed after seeking.
 | 
			
		||||
     */
 | 
			
		||||
    int64_t convergence_duration;
 | 
			
		||||
} AVCodecParserContext;
 | 
			
		||||
 | 
			
		||||
typedef struct AVCodecParser {
 | 
			
		||||
 | 
			
		||||
@ -74,6 +74,7 @@ AVCodecParserContext *av_parser_init(int codec_id)
 | 
			
		||||
    s->fetch_timestamp=1;
 | 
			
		||||
    s->pict_type = FF_I_TYPE;
 | 
			
		||||
    s->key_frame = -1;
 | 
			
		||||
    s->convergence_duration = AV_NOPTS_VALUE;
 | 
			
		||||
    return s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@
 | 
			
		||||
 | 
			
		||||
#define LIBAVFORMAT_VERSION_MAJOR 52
 | 
			
		||||
#define LIBAVFORMAT_VERSION_MINOR 29
 | 
			
		||||
#define LIBAVFORMAT_VERSION_MICRO  1
 | 
			
		||||
#define LIBAVFORMAT_VERSION_MICRO  2
 | 
			
		||||
 | 
			
		||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
 | 
			
		||||
                                               LIBAVFORMAT_VERSION_MINOR, \
 | 
			
		||||
 | 
			
		||||
@ -909,6 +909,8 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
 | 
			
		||||
        else if (pc->key_frame == -1 && pc->pict_type == FF_I_TYPE)
 | 
			
		||||
            pkt->flags |= PKT_FLAG_KEY;
 | 
			
		||||
    }
 | 
			
		||||
    if (pc)
 | 
			
		||||
        pkt->convergence_duration = pc->convergence_duration;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void av_destruct_packet_nofree(AVPacket *pkt)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user