p_in = CMediaBufferCreate( p_block, p_block->i_buffer, VLC_TRUE );
i_result = p_sys->p_dmo->vt->ProcessInput( p_sys->p_dmo, 0,
- (IMediaBuffer *)p_in, DMO_INPUT_DATA_BUFFER_SYNCPOINT,
+ (IMediaBuffer *)p_in, DMO_INPUT_DATA_BUFFERF_SYNCPOINT,
0, 0 );
p_in->vt->Release( (IUnknown *)p_in );
#endif
}
+ if( p_enc->fmt_out.i_cat == VIDEO_ES )
+ {
+ if( db.dwStatus & DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT )
+ p_block_out->i_flags |= BLOCK_FLAG_TYPE_I;
+ else
+ p_block_out->i_flags |= BLOCK_FLAG_TYPE_P;
+ }
+
p_block_out->i_dts = p_block_out->i_pts = i_pts;
block_ChainAppend( &p_chain, p_block_out );
}
#define STDCALL __stdcall
#endif
-#define DMO_INPUT_DATA_BUFFER_SYNCPOINT 1
+#define DMO_INPUT_DATA_BUFFERF_SYNCPOINT 1
#define DMO_INPUT_DATA_BUFFERF_TIME 2
#define DMO_INPUT_DATA_BUFFERF_TIMELENGTH 4
-#define DMO_OUTPUT_DATA_BUFFER_SYNCPOINT 1
+#define DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT 1
#define DMO_OUTPUT_DATA_BUFFERF_TIME 2
#define DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH 4
#define DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER 1