diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2002-12-04 10:04:03 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2002-12-04 10:04:03 +0000 |
commit | 1e491e29c27cf6a6925666e4f4eac41b65e263d7 (patch) | |
tree | 99879470b8deeb55e7d88c62729b62ac27d249ee /libavformat | |
parent | 855ea723b0ea450137e54674179751c14e8fc6b5 (diff) | |
download | ffmpeg-1e491e29c27cf6a6925666e4f4eac41b65e263d7.tar.gz |
cleanup
adding AVVideoFrame
moving quality, pict_type, key_frame, qscale_table, ... to AVVideoFrame
removing obsolete variables in AVCodecContext
skiping of MBs in b frames
correctly initalizing AVCodecContext
picture buffer cleanup
Originally committed as revision 1302 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/asf.c | 3 | ||||
-rw-r--r-- | libavformat/au.c | 2 | ||||
-rw-r--r-- | libavformat/avformat.h | 3 | ||||
-rw-r--r-- | libavformat/avidec.c | 2 | ||||
-rw-r--r-- | libavformat/avienc.c | 2 | ||||
-rw-r--r-- | libavformat/ffm.c | 7 | ||||
-rw-r--r-- | libavformat/jpeg.c | 2 | ||||
-rw-r--r-- | libavformat/rm.c | 3 | ||||
-rw-r--r-- | libavformat/swf.c | 2 | ||||
-rw-r--r-- | libavformat/utils.c | 4 |
10 files changed, 23 insertions, 7 deletions
diff --git a/libavformat/asf.c b/libavformat/asf.c index 2f1ce12dc3..3635913713 100644 --- a/libavformat/asf.c +++ b/libavformat/asf.c @@ -556,7 +556,7 @@ static void put_frame_header(AVFormatContext *s, ASFStream *stream, int timestam int val; val = stream->num; - if (s->streams[val - 1]->codec.key_frame /* && frag_offset == 0 */) + if (s->streams[val - 1]->codec.coded_picture->key_frame /* && frag_offset == 0 */) val |= 0x80; put_byte(pb, val); put_byte(pb, stream->seq); @@ -793,6 +793,7 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap) st = av_mallocz(sizeof(AVStream)); if (!st) goto fail; + avcodec_get_context_defaults(&st->codec); s->streams[s->nb_streams] = st; asf_st = av_mallocz(sizeof(ASFStream)); if (!asf_st) diff --git a/libavformat/au.c b/libavformat/au.c index 8c3d62a595..b584d8d4f5 100644 --- a/libavformat/au.c +++ b/libavformat/au.c @@ -143,6 +143,8 @@ static int au_read_header(AVFormatContext *s, st = av_malloc(sizeof(AVStream)); if (!st) return -1; + avcodec_get_context_defaults(&st->codec); + s->nb_streams = 1; s->streams[0] = st; diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 0ea10f7dfe..86ddee4b52 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -144,6 +144,9 @@ typedef struct AVStream { AVFrac pts; /* ffmpeg.c private use */ int stream_copy; /* if TRUE, just copy stream */ + /* quality, as it has been removed from AVCodecContext and put in AVVideoFrame + * MN:dunno if thats the right place, for it */ + float quality; } AVStream; #define MAX_STREAMS 20 diff --git a/libavformat/avidec.c b/libavformat/avidec.c index 9646408cd1..fc719d3fff 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -103,6 +103,8 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap) AVStream *st = av_mallocz(sizeof(AVStream)); if (!st) goto fail; + avcodec_get_context_defaults(&st->codec); + s->streams[i] = st; } url_fskip(pb, size - 7 * 4); diff --git a/libavformat/avienc.c b/libavformat/avienc.c index b4298b0b39..a9bf3a8d92 100644 --- a/libavformat/avienc.c +++ b/libavformat/avienc.c @@ -320,7 +320,7 @@ static int avi_write_packet(AVFormatContext *s, int stream_index, if (enc->codec_type == CODEC_TYPE_VIDEO) { tag[2] = 'd'; tag[3] = 'c'; - flags = enc->key_frame ? 0x10 : 0x00; + flags = enc->coded_picture->key_frame ? 0x10 : 0x00; } else { tag[2] = 'w'; tag[3] = 'b'; diff --git a/libavformat/ffm.c b/libavformat/ffm.c index c21599c69f..cd7a174d06 100644 --- a/libavformat/ffm.c +++ b/libavformat/ffm.c @@ -151,7 +151,7 @@ static int ffm_write_header(AVFormatContext *s) put_be32(pb, codec->codec_id); put_byte(pb, codec->codec_type); put_be32(pb, codec->bit_rate); - put_be32(pb, codec->quality); + put_be32(pb, st->quality); put_be32(pb, codec->flags); /* specific info */ switch(codec->codec_type) { @@ -232,7 +232,7 @@ static int ffm_write_packet(AVFormatContext *s, int stream_index, /* packet size & key_frame */ header[0] = stream_index; header[1] = 0; - if (st->codec.key_frame) + if (st->codec.coded_picture->key_frame) header[1] |= FLAG_KEY_FRAME; header[2] = (size >> 16) & 0xff; header[3] = (size >> 8) & 0xff; @@ -394,6 +394,7 @@ static int ffm_read_header(AVFormatContext *s, AVFormatParameters *ap) st = av_mallocz(sizeof(AVStream)); if (!st) goto fail; + avcodec_get_context_defaults(&st->codec); s->streams[i] = st; fst = av_mallocz(sizeof(FFMStream)); if (!fst) @@ -405,7 +406,7 @@ static int ffm_read_header(AVFormatContext *s, AVFormatParameters *ap) st->codec.codec_id = get_be32(pb); st->codec.codec_type = get_byte(pb); /* codec_type */ codec->bit_rate = get_be32(pb); - codec->quality = get_be32(pb); + st->quality = get_be32(pb); codec->flags = get_be32(pb); /* specific info */ switch(codec->codec_type) { diff --git a/libavformat/jpeg.c b/libavformat/jpeg.c index 6a19db6d67..e86edfecde 100644 --- a/libavformat/jpeg.c +++ b/libavformat/jpeg.c @@ -170,6 +170,8 @@ static int jpeg_read_header(AVFormatContext *s1, AVFormatParameters *ap) av_free(s); return -ENOMEM; } + avcodec_get_context_defaults(&st->codec); + s1->streams[0] = st; s->img_number = 0; diff --git a/libavformat/rm.c b/libavformat/rm.c index be90a27c89..44e384559d 100644 --- a/libavformat/rm.c +++ b/libavformat/rm.c @@ -352,7 +352,7 @@ static int rm_write_video(AVFormatContext *s, UINT8 *buf, int size) RMContext *rm = s->priv_data; ByteIOContext *pb = &s->pb; StreamInfo *stream = rm->video_stream; - int key_frame = stream->enc->key_frame; + int key_frame = stream->enc->coded_picture->key_frame; /* XXX: this is incorrect: should be a parameter */ @@ -527,6 +527,7 @@ static int rm_read_header(AVFormatContext *s, AVFormatParameters *ap) st = av_mallocz(sizeof(AVStream)); if (!st) goto fail; + avcodec_get_context_defaults(&st->codec); s->streams[s->nb_streams++] = st; st->id = get_be16(pb); get_be32(pb); /* max bit rate */ diff --git a/libavformat/swf.c b/libavformat/swf.c index 14f8707f96..315219056e 100644 --- a/libavformat/swf.c +++ b/libavformat/swf.c @@ -482,6 +482,8 @@ static int swf_read_header(AVFormatContext *s, AVFormatParameters *ap) st = av_mallocz(sizeof(AVStream)); if (!st) return -ENOMEM; + avcodec_get_context_defaults(&st->codec); + if (v & 0x01) st->codec.channels = 2; else diff --git a/libavformat/utils.c b/libavformat/utils.c index 5a9aa082f4..3388ddc9ef 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -458,7 +458,7 @@ int av_find_stream_info(AVFormatContext *ic) AVCodec *codec; AVStream *st; AVPacket *pkt; - AVPicture picture; + AVVideoFrame picture; AVPacketList *pktl=NULL, **ppktl; short samples[AVCODEC_MAX_AUDIO_FRAME_SIZE / 2]; UINT8 *ptr; @@ -694,6 +694,8 @@ AVStream *av_new_stream(AVFormatContext *s, int id) st = av_mallocz(sizeof(AVStream)); if (!st) return NULL; + avcodec_get_context_defaults(&st->codec); + st->index = s->nb_streams; st->id = id; s->streams[s->nb_streams++] = st; |