1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

av_*_next() API for libavformat

Originally committed as revision 11206 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2007-12-12 19:01:58 +00:00
parent 562b216307
commit 84be6e7239
5 changed files with 33 additions and 8 deletions

View File

@ -3318,9 +3318,9 @@ static int64_t getutime(void)
static void opt_show_formats(void) static void opt_show_formats(void)
{ {
AVInputFormat *ifmt; AVInputFormat *ifmt=NULL;
AVOutputFormat *ofmt; AVOutputFormat *ofmt=NULL;
URLProtocol *up; URLProtocol *up=NULL;
AVCodec *p=NULL, *p2; AVCodec *p=NULL, *p2;
AVBitStreamFilter *bsf=NULL; AVBitStreamFilter *bsf=NULL;
const char *last_name; const char *last_name;
@ -3333,7 +3333,7 @@ static void opt_show_formats(void)
const char *name=NULL; const char *name=NULL;
const char *long_name=NULL; const char *long_name=NULL;
for(ofmt = first_oformat; ofmt != NULL; ofmt = ofmt->next) { while(ofmt= av_oformat_next(ofmt)) {
if((name == NULL || strcmp(ofmt->name, name)<0) && if((name == NULL || strcmp(ofmt->name, name)<0) &&
strcmp(ofmt->name, last_name)>0){ strcmp(ofmt->name, last_name)>0){
name= ofmt->name; name= ofmt->name;
@ -3341,7 +3341,7 @@ static void opt_show_formats(void)
encode=1; encode=1;
} }
} }
for(ifmt = first_iformat; ifmt != NULL; ifmt = ifmt->next) { while(ifmt= av_iformat_next(ifmt)) {
if((name == NULL || strcmp(ifmt->name, name)<0) && if((name == NULL || strcmp(ifmt->name, name)<0) &&
strcmp(ifmt->name, last_name)>0){ strcmp(ifmt->name, last_name)>0){
name= ifmt->name; name= ifmt->name;
@ -3424,7 +3424,7 @@ static void opt_show_formats(void)
printf("\n"); printf("\n");
printf("Supported file protocols:\n"); printf("Supported file protocols:\n");
for(up = first_protocol; up != NULL; up = up->next) while(up = av_protocol_next(up))
printf(" %s:", up->name); printf(" %s:", up->name);
printf("\n"); printf("\n");

View File

@ -21,8 +21,8 @@
#ifndef FFMPEG_AVFORMAT_H #ifndef FFMPEG_AVFORMAT_H
#define FFMPEG_AVFORMAT_H #define FFMPEG_AVFORMAT_H
#define LIBAVFORMAT_VERSION_INT ((52<<16)+(1<<8)+0) #define LIBAVFORMAT_VERSION_INT ((52<<16)+(2<<8)+0)
#define LIBAVFORMAT_VERSION 52.1.0 #define LIBAVFORMAT_VERSION 52.2.0
#define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT #define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT
#define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION) #define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION)
@ -452,8 +452,13 @@ typedef struct AVPacketList {
struct AVPacketList *next; struct AVPacketList *next;
} AVPacketList; } AVPacketList;
#if LIBAVFORMAT_VERSION_INT < (53<<16)
extern AVInputFormat *first_iformat; extern AVInputFormat *first_iformat;
extern AVOutputFormat *first_oformat; extern AVOutputFormat *first_oformat;
#endif
AVInputFormat *av_iformat_next(AVInputFormat *f);
AVOutputFormat *av_oformat_next(AVOutputFormat *f);
enum CodecID av_guess_image2_codec(const char *filename); enum CodecID av_guess_image2_codec(const char *filename);

View File

@ -26,6 +26,12 @@ static int default_interrupt_cb(void);
URLProtocol *first_protocol = NULL; URLProtocol *first_protocol = NULL;
URLInterruptCB *url_interrupt_cb = default_interrupt_cb; URLInterruptCB *url_interrupt_cb = default_interrupt_cb;
URLProtocol *av_protocol_next(URLProtocol *p)
{
if(p) return p->next;
else return first_protocol;
}
int register_protocol(URLProtocol *protocol) int register_protocol(URLProtocol *protocol)
{ {
URLProtocol **p; URLProtocol **p;

View File

@ -136,6 +136,8 @@ typedef struct URLProtocol {
extern URLProtocol *first_protocol; extern URLProtocol *first_protocol;
extern URLInterruptCB *url_interrupt_cb; extern URLInterruptCB *url_interrupt_cb;
URLProtocol *av_protocol_next(URLProtocol *p);
int register_protocol(URLProtocol *protocol); int register_protocol(URLProtocol *protocol);
typedef struct { typedef struct {

View File

@ -41,6 +41,18 @@ AVInputFormat *first_iformat = NULL;
/** head of registered output format linked list. */ /** head of registered output format linked list. */
AVOutputFormat *first_oformat = NULL; AVOutputFormat *first_oformat = NULL;
AVInputFormat *av_iformat_next(AVInputFormat *f)
{
if(f) return f->next;
else return first_iformat;
}
AVOutputFormat *av_oformat_next(AVOutputFormat *f)
{
if(f) return f->next;
else return first_oformat;
}
void av_register_input_format(AVInputFormat *format) void av_register_input_format(AVInputFormat *format)
{ {
AVInputFormat **p; AVInputFormat **p;