[FFmpeg-cvslog] r21664 - trunk/libavcodec/h264_direct.c
michael
subversion
Sun Feb 7 02:18:00 CET 2010
Author: michael
Date: Sun Feb 7 02:18:00 2010
New Revision: 21664
Log:
Fix colocated map.
Modified:
trunk/libavcodec/h264_direct.c
Modified: trunk/libavcodec/h264_direct.c
==============================================================================
--- trunk/libavcodec/h264_direct.c Sun Feb 7 02:17:13 2010 (r21663)
+++ trunk/libavcodec/h264_direct.c Sun Feb 7 02:18:00 2010 (r21664)
@@ -71,7 +71,7 @@ static void fill_colmap(H264Context *h,
Picture * const ref1 = &h->ref_list[1][0];
int j, old_ref, rfield;
int start= mbafi ? 16 : 0;
- int end = mbafi ? 16+2*h->ref_count[list] : h->ref_count[list];
+ int end = mbafi ? 16+2*h->ref_count[0] : h->ref_count[0];
int interl= mbafi || s->picture_structure != PICT_FRAME;
/* bogus; fills in for missing frames */
@@ -87,10 +87,10 @@ static void fill_colmap(H264Context *h,
poc= (poc&~3) + rfield + 1;
for(j=start; j<end; j++){
- if(4*h->ref_list[list][j].frame_num + (h->ref_list[list][j].reference&3) == poc){
+ if(4*h->ref_list[0][j].frame_num + (h->ref_list[0][j].reference&3) == poc){
int cur_ref= mbafi ? (j-16)^field : j;
map[list][2*old_ref + (rfield^field) + 16] = cur_ref;
- if(rfield == field)
+ if(rfield == field || !interl)
map[list][old_ref] = cur_ref;
break;
}
More information about the ffmpeg-cvslog
mailing list