Mercurial > libavcodec.hg
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; |