You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	set PKT_FLAG_KEY for Theora and OGM streams
Originally committed as revision 11002 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		| @@ -377,6 +377,7 @@ ogg_packet (AVFormatContext * s, int *str, int *dstart, int *dsize) | ||||
|     } | ||||
|  | ||||
|     if (os->header > -1 && os->seq > os->header){ | ||||
|         os->pflags = 0; | ||||
|         if (os->codec && os->codec->packet) | ||||
|             os->codec->packet (s, idx); | ||||
|         if (str) | ||||
| @@ -525,6 +526,8 @@ ogg_read_packet (AVFormatContext * s, AVPacket * pkt) | ||||
|         os->lastgp = -1; | ||||
|     } | ||||
|  | ||||
|     pkt->flags = os->pflags; | ||||
|  | ||||
|     return psize; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -42,6 +42,7 @@ typedef struct ogg_stream { | ||||
|     unsigned int bufpos; | ||||
|     unsigned int pstart; | ||||
|     unsigned int psize; | ||||
|     unsigned int pflags; | ||||
|     uint32_t serial; | ||||
|     uint32_t seq; | ||||
|     uint64_t granule, lastgp; | ||||
|   | ||||
| @@ -134,6 +134,9 @@ ogm_packet(AVFormatContext *s, int idx) | ||||
|     uint8_t *p = os->buf + os->pstart; | ||||
|     int lb; | ||||
|  | ||||
|     if(*p & 8) | ||||
|         os->pflags |= PKT_FLAG_KEY; | ||||
|  | ||||
|     lb = ((*p & 2) << 1) | ((*p >> 6) & 3); | ||||
|     os->pstart += lb + 1; | ||||
|     os->psize -= lb + 1; | ||||
|   | ||||
| @@ -124,6 +124,9 @@ theora_gptopts(AVFormatContext *ctx, int idx, uint64_t gp) | ||||
|     uint64_t iframe = gp >> thp->gpshift; | ||||
|     uint64_t pframe = gp & thp->gpmask; | ||||
|  | ||||
|     if(!pframe) | ||||
|         os->pflags |= PKT_FLAG_KEY; | ||||
|  | ||||
|     return iframe + pframe; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user