bool b_first_frame;
int i_width, i_height, i_fps_num, i_fps_den;
- // FIXME: field dominance
+ uint32_t i_dominance_flags;
int i_rate, i_channels;
BMDTimeValue stream_time, frame_duration;
videoFrame->GetStreamTime( &stream_time, &frame_duration, CLOCK_FREQ );
- p_video_frame->i_flags = BLOCK_FLAG_TYPE_I;
+ p_video_frame->i_flags = BLOCK_FLAG_TYPE_I | p_sys->i_dominance_flags;
if( p_sys->b_first_frame )
{
p_video_frame->i_flags |= BLOCK_FLAG_DISCONTINUITY;
}
const char *field_dominance;
+ uint32_t i_dominance_flags = 0;
switch( p_display_mode->GetFieldDominance() )
{
case bmdProgressiveFrame:
break;
case bmdLowerFieldFirst:
field_dominance = ", interlaced [BFF]";
+ i_dominance_flags = BLOCK_FLAG_BOTTOM_FIELD_FIRST;
break;
case bmdUpperFieldFirst:
field_dominance = ", interlaced [TFF]";
+ i_dominance_flags = BLOCK_FLAG_TOP_FIELD_FIRST;
break;
case bmdUnknownFieldDominance:
default:
p_sys->i_height = p_display_mode->GetHeight();
p_sys->i_fps_num = time_scale;
p_sys->i_fps_den = frame_duration;
+ p_sys->i_dominance_flags = i_dominance_flags;
}
}