]> git.sesse.net Git - casparcg/blobdiff - modules/ffmpeg/producer/util/util.cpp
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
[casparcg] / modules / ffmpeg / producer / util / util.cpp
index 27b7d66a3b02d7f0599c61e9c21bd445e608afbd..c20e8cc725f978994d21eb9ff13aef0c4722efe7 100644 (file)
@@ -4,6 +4,7 @@
 \r
 #include "flv.h"\r
 \r
+#include "../tbb_avcodec.h"\r
 #include "../../ffmpeg_error.h"\r
 \r
 #include <tbb/concurrent_unordered_map.h>\r
@@ -239,6 +240,12 @@ safe_ptr<core::write_frame> make_write_frame(const void* tag, const safe_ptr<AVF
                        write->commit(n);\r
                }\r
        }\r
+\r
+       if(decoded_frame->height == 480) // NTSC DV\r
+       {\r
+               write->get_frame_transform().fill_translation[1] += 2.0/static_cast<double>(frame_factory->get_video_format_desc().height);\r
+               write->get_frame_transform().fill_scale[1] = 1.0 - 6.0*1.0/static_cast<double>(frame_factory->get_video_format_desc().height);\r
+       }\r
        \r
        // Fix field-order if needed\r
        if(write->get_type() == core::field_mode::lower && frame_factory->get_video_format_desc().field_mode == core::field_mode::upper)\r
@@ -355,8 +362,11 @@ safe_ptr<AVCodecContext> open_codec(AVFormatContext& context, enum AVMediaType t
 {      \r
        AVCodec* decoder;\r
        index = THROW_ON_ERROR2(av_find_best_stream(&context, type, -1, -1, &decoder, 0), "");\r
-       THROW_ON_ERROR2(avcodec_open(context.streams[index]->codec, decoder), "");\r
-       return safe_ptr<AVCodecContext>(context.streams[index]->codec, avcodec_close);\r
+       if(strcmp(decoder->name, "prores") == 0 && decoder->next && strcmp(decoder->next->name, "prores_lgpl") == 0)\r
+               decoder = decoder->next;\r
+\r
+       THROW_ON_ERROR2(tbb_avcodec_open(context.streams[index]->codec, decoder), "");\r
+       return safe_ptr<AVCodecContext>(context.streams[index]->codec, tbb_avcodec_close);\r
 }\r
 \r
 safe_ptr<AVFormatContext> open_input(const std::wstring& filename)\r