2017-04-15 14 views
0

FFMPEGの一部となるフィルタを作成しようとしています。それを作成するプロセスでは、イメージが再サンプリングされないように、フレームの周りにパディングを作成する必要があります。必要な幅と高さがあります。私はこれがlibswscale/swscale.hで可能であることを知っていますが、処理されているプレーンのパディングをどのように行うかの例は見つかりませんでした。以下のコード例:FFMPEGライブラリプレーン/フレーム処理のパディングを追加

if (av_frame_is_writable(in)) { 
     out = in; 
    } else { 
     out = ff_get_video_buffer(outlink, outlink->w, outlink->h); 
     if (!out) { 
      av_frame_free(&in); 
      return AVERROR(ENOMEM); 
     } 
     av_frame_copy_props(out, in); 
    } 

    for (p = 0; p < filter->nb_planes; p++) { 
     // did not find any documentation as to 
     //how set those attributes to add padding to the plane 
     filter->sws_ctx = sws_getContext(src_w, src_h, src_pix_fmt, 
          dst_w, dst_h, dst_pix_fmt, 
          SWS_BILINEAR, NULL, NULL, NULL); 
    } 

答えて

0

フィルタ内で実行する方法は他にありません。機能はvf_padフィルタから実装する必要があります。

クレジット:@durandal_1707 from #ffmpeg IRC

関連する問題