+
+ shared_ptr<const ImageContent> ic = dynamic_pointer_cast<const ImageContent> (content);
+ if (ic) {
+ return shared_ptr<Decoder> (new ImageDecoder (ic, log));
+ }
+
+ shared_ptr<const TextSubtitleContent> rc = dynamic_pointer_cast<const TextSubtitleContent> (content);
+ if (rc) {
+ return shared_ptr<Decoder> (new TextSubtitleDecoder (rc));
+ }
+
+ shared_ptr<const DCPSubtitleContent> dsc = dynamic_pointer_cast<const DCPSubtitleContent> (content);
+ if (dsc) {
+ return shared_ptr<Decoder> (new DCPSubtitleDecoder (dsc));
+ }
+
+ shared_ptr<const VideoMXFContent> vmc = dynamic_pointer_cast<const VideoMXFContent> (content);
+ if (vmc) {
+ return shared_ptr<Decoder> (new VideoMXFDecoder (vmc, log));
+ }
+
+ return shared_ptr<Decoder> ();