You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	tools/pktdumper: use av_packet_alloc() to allocate packets
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
		| @@ -54,7 +54,7 @@ int main(int argc, char **argv) | ||||
|     char fntemplate[FILENAME_BUF_SIZE]; | ||||
|     char pktfilename[FILENAME_BUF_SIZE]; | ||||
|     AVFormatContext *fctx = NULL; | ||||
|     AVPacket pkt; | ||||
|     AVPacket *pkt; | ||||
|     int64_t pktnum  = 0; | ||||
|     int64_t maxpkts = 0; | ||||
|     int donotquit   = 0; | ||||
| @@ -101,30 +101,35 @@ int main(int argc, char **argv) | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     av_init_packet(&pkt); | ||||
|     pkt = av_packet_alloc(); | ||||
|     if (!pkt) { | ||||
|         fprintf(stderr, "av_packet_alloc: error %d\n", AVERROR(ENOMEM)); | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     while ((err = av_read_frame(fctx, &pkt)) >= 0) { | ||||
|     while ((err = av_read_frame(fctx, pkt)) >= 0) { | ||||
|         int fd; | ||||
|         snprintf(pktfilename, sizeof(pktfilename), fntemplate, pktnum, | ||||
|                  pkt.stream_index, pkt.pts, pkt.size, | ||||
|                  (pkt.flags & AV_PKT_FLAG_KEY) ? 'K' : '_'); | ||||
|         printf(PKTFILESUFF "\n", pktnum, pkt.stream_index, pkt.pts, pkt.size, | ||||
|                (pkt.flags & AV_PKT_FLAG_KEY) ? 'K' : '_'); | ||||
|                  pkt->stream_index, pkt->pts, pkt->size, | ||||
|                  (pkt->flags & AV_PKT_FLAG_KEY) ? 'K' : '_'); | ||||
|         printf(PKTFILESUFF "\n", pktnum, pkt->stream_index, pkt->pts, pkt->size, | ||||
|                (pkt->flags & AV_PKT_FLAG_KEY) ? 'K' : '_'); | ||||
|         if (!nowrite) { | ||||
|             fd  = open(pktfilename, O_WRONLY | O_CREAT, 0644); | ||||
|             err = write(fd, pkt.data, pkt.size); | ||||
|             err = write(fd, pkt->data, pkt->size); | ||||
|             if (err < 0) { | ||||
|                 fprintf(stderr, "write: error %d\n", err); | ||||
|                 return 1; | ||||
|             } | ||||
|             close(fd); | ||||
|         } | ||||
|         av_packet_unref(&pkt); | ||||
|         av_packet_unref(pkt); | ||||
|         pktnum++; | ||||
|         if (maxpkts && (pktnum >= maxpkts)) | ||||
|             break; | ||||
|     } | ||||
|  | ||||
|     av_packet_free(&pkt); | ||||
|     avformat_close_input(&fctx); | ||||
|  | ||||
|     while (donotquit) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user