{
GstVC1Parse *vc1parse = GST_VC1_PARSE (parse);
- /* Nothing to do here */
- if (vc1parse->input_stream_format == vc1parse->output_stream_format)
- return GST_FLOW_OK;
-
- switch (vc1parse->output_stream_format) {
- case VC1_STREAM_FORMAT_BDU:
- switch (vc1parse->input_stream_format) {
- case VC1_STREAM_FORMAT_BDU:
- case VC1_STREAM_FORMAT_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_RAW_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_FRAME_LAYER:
- case VC1_STREAM_FORMAT_ASF:
- case VC1_STREAM_FORMAT_FRAME_LAYER:
- break;
- default:
- g_assert_not_reached ();
- }
- break;
- case VC1_STREAM_FORMAT_BDU_FRAME:
- switch (vc1parse->input_stream_format) {
- case VC1_STREAM_FORMAT_BDU:
- case VC1_STREAM_FORMAT_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_RAW_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_FRAME_LAYER:
- case VC1_STREAM_FORMAT_ASF:
- case VC1_STREAM_FORMAT_FRAME_LAYER:
- break;
- default:
- g_assert_not_reached ();
- }
- break;
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU:
- switch (vc1parse->input_stream_format) {
- case VC1_STREAM_FORMAT_BDU:
- case VC1_STREAM_FORMAT_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_RAW_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_FRAME_LAYER:
- case VC1_STREAM_FORMAT_ASF:
- case VC1_STREAM_FORMAT_FRAME_LAYER:
- break;
- default:
- g_assert_not_reached ();
- }
- break;
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU_FRAME:
- switch (vc1parse->input_stream_format) {
- case VC1_STREAM_FORMAT_BDU:
- case VC1_STREAM_FORMAT_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_RAW_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_FRAME_LAYER:
- case VC1_STREAM_FORMAT_ASF:
- case VC1_STREAM_FORMAT_FRAME_LAYER:
- break;
- default:
- g_assert_not_reached ();
- }
- break;
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_RAW_FRAME:
- switch (vc1parse->input_stream_format) {
- case VC1_STREAM_FORMAT_BDU:
- case VC1_STREAM_FORMAT_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_RAW_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_FRAME_LAYER:
- case VC1_STREAM_FORMAT_ASF:
- case VC1_STREAM_FORMAT_FRAME_LAYER:
- break;
- default:
- g_assert_not_reached ();
- }
- break;
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_FRAME_LAYER:
- switch (vc1parse->input_stream_format) {
- case VC1_STREAM_FORMAT_BDU:
- case VC1_STREAM_FORMAT_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_RAW_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_FRAME_LAYER:
- case VC1_STREAM_FORMAT_ASF:
- case VC1_STREAM_FORMAT_FRAME_LAYER:
- break;
- default:
- g_assert_not_reached ();
- }
- break;
- case VC1_STREAM_FORMAT_ASF:
- switch (vc1parse->input_stream_format) {
- case VC1_STREAM_FORMAT_BDU:
- case VC1_STREAM_FORMAT_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_RAW_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_FRAME_LAYER:
- case VC1_STREAM_FORMAT_ASF:
- case VC1_STREAM_FORMAT_FRAME_LAYER:
- break;
- default:
- g_assert_not_reached ();
- }
- break;
- case VC1_STREAM_FORMAT_FRAME_LAYER:
- switch (vc1parse->input_stream_format) {
- case VC1_STREAM_FORMAT_BDU:
- case VC1_STREAM_FORMAT_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_BDU_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_RAW_FRAME:
- case VC1_STREAM_FORMAT_SEQUENCE_LAYER_FRAME_LAYER:
- case VC1_STREAM_FORMAT_ASF:
- case VC1_STREAM_FORMAT_FRAME_LAYER:
- break;
- default:
- g_assert_not_reached ();
- }
- break;
- default:
- g_assert_not_reached ();
+ if (vc1parse->input_header_format != vc1parse->output_header_format ||
+ vc1parse->input_stream_format != vc1parse->output_stream_format) {
+ GST_WARNING_OBJECT (vc1parse, "stream conversion not implemented yet");
+ return GST_FLOW_ERROR;
}
return GST_FLOW_OK;