comparison mpegvideo.c @ 652:c7647afc3ce5 libavcodec

set pict_type & key_frame on decoding too
author michaelni
date Thu, 12 Sep 2002 00:27:08 +0000
parents 45e8f39fda50
children e47fa3e3f2d5
comparison
equal deleted inserted replaced
651:45e8f39fda50 652:c7647afc3ce5
718 } 718 }
719 719
720 /* generic function for encode/decode called after a frame has been coded/decoded */ 720 /* generic function for encode/decode called after a frame has been coded/decoded */
721 void MPV_frame_end(MpegEncContext *s) 721 void MPV_frame_end(MpegEncContext *s)
722 { 722 {
723 // if((s->picture_number%100)==0 && s->encoding) printf("sads:%d //\n", sads); 723 s->avctx->key_frame = (s->pict_type == I_TYPE);
724 s->avctx->pict_type = s->pict_type;
724 725
725 /* draw edge for correct motion prediction if outside */ 726 /* draw edge for correct motion prediction if outside */
726 if (s->pict_type != B_TYPE && !s->intra_only && !(s->flags&CODEC_FLAG_EMU_EDGE)) { 727 if (s->pict_type != B_TYPE && !s->intra_only && !(s->flags&CODEC_FLAG_EMU_EDGE)) {
727 draw_edges(s->current_picture[0], s->linesize , s->h_edge_pos , s->v_edge_pos , EDGE_WIDTH ); 728 draw_edges(s->current_picture[0], s->linesize , s->h_edge_pos , s->v_edge_pos , EDGE_WIDTH );
728 draw_edges(s->current_picture[1], s->uvlinesize, s->h_edge_pos>>1, s->v_edge_pos>>1, EDGE_WIDTH/2); 729 draw_edges(s->current_picture[1], s->uvlinesize, s->h_edge_pos>>1, s->v_edge_pos>>1, EDGE_WIDTH/2);
868 s->picture_number= s->coded_order[0].picture_number; 869 s->picture_number= s->coded_order[0].picture_number;
869 870
870 MPV_frame_start(s, avctx); 871 MPV_frame_start(s, avctx);
871 872
872 encode_picture(s, s->picture_number); 873 encode_picture(s, s->picture_number);
873 avctx->key_frame = (s->pict_type == I_TYPE); 874
874 avctx->pict_type = s->pict_type;
875 avctx->real_pict_num = s->picture_number; 875 avctx->real_pict_num = s->picture_number;
876 avctx->header_bits = s->header_bits; 876 avctx->header_bits = s->header_bits;
877 avctx->mv_bits = s->mv_bits; 877 avctx->mv_bits = s->mv_bits;
878 avctx->misc_bits = s->misc_bits; 878 avctx->misc_bits = s->misc_bits;
879 avctx->i_tex_bits = s->i_tex_bits; 879 avctx->i_tex_bits = s->i_tex_bits;