1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00

removing keyframe prediction and checksum threshold

Originally committed as revision 2991 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2004-04-09 16:46:12 +00:00
parent 19f82bc824
commit aec8f88a9e

View File

@ -25,7 +25,6 @@
/*
* TODO:
* - seeking
* - index writing
* - index packet reading support
*/
@ -59,7 +58,6 @@
#define FLAG_PTS 16
#define FLAG_FULL_PTS 4
#define FLAG_KEY_FRAME 32
#define FLAG_PRED_KEY_FRAME 64
typedef struct {
uint8_t flags;
@ -478,7 +476,6 @@ static int nut_write_header(AVFormatContext *s)
put_packetheader(nut, bc, 120+5*256, 1);
put_v(bc, 1); /* version */
put_v(bc, s->nb_streams);
put_v(bc, 3);
build_frame_code(s);
assert(nut->frame_code['N'].flags == 1);
@ -671,7 +668,7 @@ static int nut_write_packet(AVFormatContext *s, int stream_index,
frame_code= -1;
for(i=0; i<256; i++){
int stream_id_plus1= nut->frame_code[i].stream_id_plus1;
int fc_key_frame= stream->last_key_frame;
int fc_key_frame;
int length=0;
size_mul= nut->frame_code[i].size_mul;
size_lsb= nut->frame_code[i].size_lsb;
@ -680,12 +677,8 @@ static int nut_write_packet(AVFormatContext *s, int stream_index,
if(stream_id_plus1 == 0) length+= get_length(stream_index);
else if(stream_id_plus1 - 1 != stream_index)
continue;
if(flags & FLAG_PRED_KEY_FRAME){
if(flags & FLAG_KEY_FRAME)
fc_key_frame= !fc_key_frame;
}else{
fc_key_frame= !!(flags & FLAG_KEY_FRAME);
}
fc_key_frame= !!(flags & FLAG_KEY_FRAME);
assert(key_frame==0 || key_frame==1);
if(fc_key_frame != key_frame)
continue;
@ -832,7 +825,6 @@ static int decode_main_header(NUTContext *nut){
}
nut->stream_count = get_v(bc);
get_v(bc); //checksum threshold
for(i=0; i<256;){
int tmp_flags = get_v(bc);
@ -847,10 +839,6 @@ static int decode_main_header(NUTContext *nut){
}
if((tmp_flags & FLAG_FRAME_TYPE) && tmp_flags != 1){
if(tmp_flags & FLAG_PRED_KEY_FRAME){
av_log(s, AV_LOG_ERROR, "keyframe prediction in non 0 frame type\n");
return -1;
}
if(!(tmp_flags & FLAG_PTS) || !(tmp_flags & FLAG_FULL_PTS) ){
av_log(s, AV_LOG_ERROR, "no full pts in non 0 frame type\n");
return -1;
@ -1112,14 +1100,7 @@ static int decode_frame(NUTContext *nut, AVPacket *pkt, int frame_code, int fram
// av_log(s, AV_LOG_DEBUG, "ft:%d ppts:%d %d %d\n", frame_type, stream->lru_pts_delta[0], stream->lru_pts_delta[1], stream->lru_pts_delta[2]);
if(flags & FLAG_PRED_KEY_FRAME){
if(flags & FLAG_KEY_FRAME)
key_frame= !stream->last_key_frame;
else
key_frame= stream->last_key_frame;
}else{
key_frame= !!(flags & FLAG_KEY_FRAME);
}
key_frame= !!(flags & FLAG_KEY_FRAME);
if(flags & FLAG_PTS){
if(flags & FLAG_FULL_PTS){