[FFmpeg-cvslog] r9109 - in trunk: doc/ffmpeg-doc.texi ffmpeg.c

ivo subversion
Wed May 23 20:35:45 CEST 2007


Author: ivo
Date: Wed May 23 20:35:45 2007
New Revision: 9109

Log:
-sws_flags command line option to set swscaler flags


Modified:
   trunk/doc/ffmpeg-doc.texi
   trunk/ffmpeg.c

Modified: trunk/doc/ffmpeg-doc.texi
==============================================================================
--- trunk/doc/ffmpeg-doc.texi	(original)
+++ trunk/doc/ffmpeg-doc.texi	Wed May 23 20:35:45 2007
@@ -416,6 +416,8 @@ Add a new video stream to the current ou
 @table @option
 @item -pix_fmt format
 Set pixel format.
+ at item -sws_flags flags
+Set SwScaler flags (only available when compiled with SwScaler support).
 @item -g gop_size
 Set the group of pictures size.
 @item -intra

Modified: trunk/ffmpeg.c
==============================================================================
--- trunk/ffmpeg.c	(original)
+++ trunk/ffmpeg.c	Wed May 23 20:35:45 2007
@@ -208,6 +208,7 @@ const char **opt_names=NULL;
 int opt_name_count=0;
 AVCodecContext *avctx_opts[CODEC_TYPE_NB];
 AVFormatContext *avformat_opts;
+struct SwsContext *sws_opts;
 static int64_t timer_start = 0;
 
 static AVBitStreamFilterContext *video_bitstream_filters=NULL;
@@ -1609,6 +1610,9 @@ static int av_encode(AVFormatContext **o
                         fprintf(stderr, "Cannot allocate temp picture, check pix fmt\n");
                         exit(1);
                     }
+#ifdef CONFIG_SWSCALER
+                    sws_flags = av_get_int(sws_opts, "sws_flags", NULL);
+#endif
                     ost->img_resample_ctx = sws_getContext(
                             icodec->width - (frame_leftBand + frame_rightBand),
                             icodec->height - (frame_topBand + frame_bottomBand),
@@ -3517,6 +3521,10 @@ static int opt_default(const char *opt, 
     }
     if(!o)
         o = av_set_string(avformat_opts, opt, arg);
+#ifdef CONFIG_SWSCALER
+    if(!o)
+        o = av_set_string(sws_opts, opt, arg);
+#endif
     if(!o){
         if(opt[0] == 'a')
             o = av_set_string(avctx_opts[CODEC_TYPE_AUDIO], opt+1, arg);
@@ -3759,6 +3767,9 @@ static void show_help(void)
                       OPT_EXPERT);
     av_opt_show(avctx_opts[0], NULL);
     av_opt_show(avformat_opts, NULL);
+#ifdef CONFIG_SWSCALER
+    av_opt_show(sws_opts, NULL);
+#endif
 
     exit(1);
 }
@@ -3779,6 +3790,9 @@ int main(int argc, char **argv)
         avctx_opts[i]= avcodec_alloc_context2(i);
     }
     avformat_opts = av_alloc_format_context();
+#ifdef CONFIG_SWSCALER
+    sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, sws_flags, NULL,NULL,NULL);
+#endif
 
     if (argc <= 1)
         show_help();




More information about the ffmpeg-cvslog mailing list