* fixing a regression in mpeg encoder (not setting pix_fmt),
authorRoman Shaposhnik <roman@shaposhnik.org>
Tue, 12 Aug 2003 18:20:29 +0000 (18:20 +0000)
committerRoman Shaposhnik <roman@shaposhnik.org>
Tue, 12 Aug 2003 18:20:29 +0000 (18:20 +0000)
     this is hardly the right way to do things, but it'll suffice for now.
   * patch from Gildas Bazin
                gbazin at altern dot org
   * fix for a 10l in configure
   * gcc 2.95.3 and Solaris build in general are not ready
     for -Werror in libavformat/Makefile

Originally committed as revision 2123 to svn://svn.ffmpeg.org/ffmpeg/trunk

configure
libavcodec/avcodec.h
libavcodec/mpeg12.c
libavcodec/mpegvideo.c
libavformat/Makefile

index 19b2442..c480546 100755 (executable)
--- a/configure
+++ b/configure
@@ -870,7 +870,6 @@ elif test "$cpu" = "powerpc" ; then
 elif test "$cpu" = "mips" ; then
   echo "TARGET_ARCH_MIPS=yes" >> config.mak
   echo "#define ARCH_MIPS 1" >> $TMPH
-fi
 elif test "$cpu" = "sh4" ; then
   echo "TARGET_ARCH_SH4=yes" >> config.mak
   echo "#define ARCH_SH4 1" >> $TMPH
index 889c314..e0f87c7 100644 (file)
@@ -455,7 +455,10 @@ typedef struct AVCodecContext {
 
     /**
      * pixel format, see PIX_FMT_xxx.
-     * - encoding: unused
+     * - encoding: FIXME: used by ffmpeg to decide whether an pix_fmt
+     *                    conversion is in order. This only works for
+     *                    codecs with one supported pix_fmt, we should
+     *                    do something for a generic case as well.
      * - decoding: set by lavc.
      */
     enum PixelFormat pix_fmt;
index f15b336..c9884d3 100644 (file)
@@ -2035,7 +2035,7 @@ static int slice_end(AVCodecContext *avctx, AVFrame *pict)
     Mpeg1Context *s1 = avctx->priv_data;
     MpegEncContext *s = &s1->mpeg_enc_ctx;
        
-    if (!s1->mpeg_enc_ctx_allocated)
+    if (!s1->mpeg_enc_ctx_allocated || !s->current_picture_ptr)
         return 0;
 
 #ifdef HAVE_XVMC
index 91b46b2..b84875f 100644 (file)
@@ -540,6 +540,8 @@ int MPV_encode_init(AVCodecContext *avctx)
     int i;
     int chroma_h_shift, chroma_v_shift;
 
+    avctx->pix_fmt = PIX_FMT_YUV420P; // FIXME
+
     s->bit_rate = avctx->bit_rate;
     s->bit_rate_tolerance = avctx->bit_rate_tolerance;
     s->width = avctx->width;
@@ -1515,6 +1517,7 @@ static void select_input_picture(MpegEncContext *s){
             pic->quality   = s->reordered_input_picture[0]->quality;
             pic->coded_picture_number = s->reordered_input_picture[0]->coded_picture_number;
             pic->reference = s->reordered_input_picture[0]->reference;
+           pic->pts = s->reordered_input_picture[0]->pts;
             
             alloc_picture(s, pic, 0);
 
index 69e3ef2..e898e40 100644 (file)
@@ -6,7 +6,7 @@ include ../config.mak
 
 VPATH=$(SRC_PATH)/libavformat
 
-CFLAGS= $(OPTFLAGS) -Wall -g -I.. -I$(SRC_PATH) -I$(SRC_PATH)/libavcodec -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -Werror
+CFLAGS= $(OPTFLAGS) -Wall -g -I.. -I$(SRC_PATH) -I$(SRC_PATH)/libavcodec -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE
 
 OBJS= utils.o cutils.o allformats.o
 PPOBJS=