comparison h264_parser.c @ 9035:d22ed7aad1b0 libavcodec

Correct time_base of H.264 and repeat_pict. Patch by Ivan Schreter, schreter gmx net
author cehoyos
date Tue, 24 Feb 2009 20:19:59 +0000
parents 78afc2990d00
children d4002371b3d2
comparison
equal deleted inserted replaced
9034:96731d42ca82 9035:d22ed7aad1b0
194 194
195 if(h->sps.pic_struct_present_flag) { 195 if(h->sps.pic_struct_present_flag) {
196 switch (h->sei_pic_struct) { 196 switch (h->sei_pic_struct) {
197 case SEI_PIC_STRUCT_TOP_FIELD: 197 case SEI_PIC_STRUCT_TOP_FIELD:
198 case SEI_PIC_STRUCT_BOTTOM_FIELD: 198 case SEI_PIC_STRUCT_BOTTOM_FIELD:
199 s->repeat_pict = -1; 199 s->repeat_pict = 0;
200 break; 200 break;
201 case SEI_PIC_STRUCT_FRAME: 201 case SEI_PIC_STRUCT_FRAME:
202 case SEI_PIC_STRUCT_TOP_BOTTOM: 202 case SEI_PIC_STRUCT_TOP_BOTTOM:
203 case SEI_PIC_STRUCT_BOTTOM_TOP: 203 case SEI_PIC_STRUCT_BOTTOM_TOP:
204 s->repeat_pict = 0; 204 s->repeat_pict = 1;
205 break; 205 break;
206 case SEI_PIC_STRUCT_TOP_BOTTOM_TOP: 206 case SEI_PIC_STRUCT_TOP_BOTTOM_TOP:
207 case SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM: 207 case SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM:
208 s->repeat_pict = 1; 208 s->repeat_pict = 2;
209 break; 209 break;
210 case SEI_PIC_STRUCT_FRAME_DOUBLING: 210 case SEI_PIC_STRUCT_FRAME_DOUBLING:
211 s->repeat_pict = 2; 211 s->repeat_pict = 3;
212 break; 212 break;
213 case SEI_PIC_STRUCT_FRAME_TRIPLING: 213 case SEI_PIC_STRUCT_FRAME_TRIPLING:
214 s->repeat_pict = 4; 214 s->repeat_pict = 5;
215 break; 215 break;
216 default: 216 default:
217 s->repeat_pict = h->s.picture_structure == PICT_FRAME ? 0 : -1; 217 s->repeat_pict = h->s.picture_structure == PICT_FRAME ? 1 : 0;
218 break; 218 break;
219 } 219 }
220 } else { 220 } else {
221 s->repeat_pict = h->s.picture_structure == PICT_FRAME ? 0 : -1; 221 s->repeat_pict = h->s.picture_structure == PICT_FRAME ? 1 : 0;
222 } 222 }
223 223
224 return 0; /* no need to evaluate the rest */ 224 return 0; /* no need to evaluate the rest */
225 } 225 }
226 buf += consumed; 226 buf += consumed;