mirror of
				https://github.com/nyanmisaka/ffmpeg-rockchip.git
				synced 2025-10-26 18:30:52 +08:00 
			
		
		
		
	Set cur_dts to 0 only during creating new streams and not every time cur_dts happens
to be AV_NOPTS_VALUE. Originally committed as revision 14118 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		| @@ -730,10 +730,6 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st, | |||||||
|     if(pkt->dts != AV_NOPTS_VALUE && pkt->pts != AV_NOPTS_VALUE && pkt->pts > pkt->dts) |     if(pkt->dts != AV_NOPTS_VALUE && pkt->pts != AV_NOPTS_VALUE && pkt->pts > pkt->dts) | ||||||
|         presentation_delayed = 1; |         presentation_delayed = 1; | ||||||
|  |  | ||||||
|     if(st->cur_dts == AV_NOPTS_VALUE){ |  | ||||||
|         st->cur_dts = 0; //FIXME maybe set it to 0 during init |  | ||||||
|     } |  | ||||||
|  |  | ||||||
| //    av_log(NULL, AV_LOG_DEBUG, "IN delayed:%d pts:%"PRId64", dts:%"PRId64" cur_dts:%"PRId64" st:%d pc:%p\n", presentation_delayed, pkt->pts, pkt->dts, st->cur_dts, pkt->stream_index, pc); | //    av_log(NULL, AV_LOG_DEBUG, "IN delayed:%d pts:%"PRId64", dts:%"PRId64" cur_dts:%"PRId64" st:%d pc:%p\n", presentation_delayed, pkt->pts, pkt->dts, st->cur_dts, pkt->stream_index, pc); | ||||||
|     /* interpolate PTS and DTS if they are not present */ |     /* interpolate PTS and DTS if they are not present */ | ||||||
|     if(delay==0 || (delay==1 && pc)){ |     if(delay==0 || (delay==1 && pc)){ | ||||||
| @@ -2263,7 +2259,11 @@ AVStream *av_new_stream(AVFormatContext *s, int id) | |||||||
|     st->id = id; |     st->id = id; | ||||||
|     st->start_time = AV_NOPTS_VALUE; |     st->start_time = AV_NOPTS_VALUE; | ||||||
|     st->duration = AV_NOPTS_VALUE; |     st->duration = AV_NOPTS_VALUE; | ||||||
|     st->cur_dts = AV_NOPTS_VALUE; |         /* we set the current DTS to 0 so that formats without any timestamps | ||||||
|  |            but durations get some timestamps, formats with some unknown | ||||||
|  |            timestamps have their first few packets buffered and the | ||||||
|  |            timestamps corrected before they are returned to the user */ | ||||||
|  |     st->cur_dts = 0; | ||||||
|     st->first_dts = AV_NOPTS_VALUE; |     st->first_dts = AV_NOPTS_VALUE; | ||||||
|  |  | ||||||
|     /* default pts setting is MPEG-like */ |     /* default pts setting is MPEG-like */ | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ bdb7484c68db722f66ba1630cf79844c *./tests/data/b-libav.mpg | |||||||
| ./tests/data/b-libav.mpg CRC=0x2b71a386 | ./tests/data/b-libav.mpg CRC=0x2b71a386 | ||||||
| 447b005e527cf495ec13092e788f028d *./tests/data/b-libav.ts | 447b005e527cf495ec13092e788f028d *./tests/data/b-libav.ts | ||||||
| 471692 ./tests/data/b-libav.ts | 471692 ./tests/data/b-libav.ts | ||||||
| ./tests/data/b-libav.ts CRC=0xcc4948e1 | ./tests/data/b-libav.ts CRC=0xd14320e2 | ||||||
| d6fdeb9f7083cc827f9510c6c4517dc0 *./tests/data/b-libav.swf | d6fdeb9f7083cc827f9510c6c4517dc0 *./tests/data/b-libav.swf | ||||||
| 335771 ./tests/data/b-libav.swf | 335771 ./tests/data/b-libav.swf | ||||||
| ./tests/data/b-libav.swf CRC=0xe14e8847 | ./tests/data/b-libav.swf CRC=0xe14e8847 | ||||||
|   | |||||||
| @@ -3481,7 +3481,7 @@ ret:-1 st:-1 ts:0.460008 flags:0 | |||||||
| ret:-1 st:-1 ts:-0.645825 flags:1 | ret:-1 st:-1 ts:-0.645825 flags:1 | ||||||
| ---------------- | ---------------- | ||||||
| tests/data/b-libav.ts | tests/data/b-libav.ts | ||||||
| ret: 0 st: 0 dts:0.000000 pts:-102481911520608.625000 pos:-1 size:24921 flags:1 | ret: 0 st: 0 dts:-102481911520608.625000 pts:-102481911520608.625000 pos:-1 size:24921 flags:1 | ||||||
| ret: 0 st:-1 ts:-1.000000 flags:0 | ret: 0 st:-1 ts:-1.000000 flags:0 | ||||||
| ret: 0 st: 0 dts:0.000000 pts:-102481911520608.625000 pos:-1 size:22036 flags:1 | ret: 0 st: 0 dts:0.000000 pts:-102481911520608.625000 pos:-1 size:22036 flags:1 | ||||||
| ret: 0 st:-1 ts:1.894167 flags:1 | ret: 0 st:-1 ts:1.894167 flags:1 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Michael Niedermayer
					Michael Niedermayer