]> git.sesse.net Git - vlc/commitdiff
* ffmpeg/video.c: got rid of the --ffmpeg-truncated option.
authorGildas Bazin <gbazin@videolan.org>
Mon, 8 Mar 2004 13:54:49 +0000 (13:54 +0000)
committerGildas Bazin <gbazin@videolan.org>
Mon, 8 Mar 2004 13:54:49 +0000 (13:54 +0000)
modules/codec/ffmpeg/demux.c
modules/codec/ffmpeg/ffmpeg.c
modules/codec/ffmpeg/ffmpeg.h
modules/codec/ffmpeg/video.c

index e5233a0a5c24221920482f63e9b326f4ba7ad4c0..c590b427456a4899b14be273a36ff102b58e9cf2 100644 (file)
@@ -2,7 +2,7 @@
  * demux.c: demuxer using ffmpeg (libavformat).
  *****************************************************************************
  * Copyright (C) 2004 VideoLAN
- * $Id: demux.c,v 1.4 2004/01/25 21:39:37 gbazin Exp $
+ * $Id$
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *          Gildas Bazin <gbazin@netcourrier.com>
index 739c4ab7fa21f6cec04374f11d39b1bb9f4f2350..33a3fd4863650b9fc95df4e71596713adaf1c47f 100644 (file)
@@ -87,8 +87,6 @@ vlc_module_begin();
         VLC_FALSE );
     add_bool( "ffmpeg-hurry-up", 0, NULL, HURRYUP_TEXT, HURRYUP_LONGTEXT,
         VLC_FALSE );
-    add_integer( "ffmpeg-truncated", 0, NULL, TRUNC_TEXT, TRUNC_LONGTEXT,
-        VLC_FALSE );
 
 #ifdef LIBAVCODEC_PP
     add_integer( "ffmpeg-pp-q", 0, NULL, PP_Q_TEXT, PP_Q_LONGTEXT, VLC_FALSE );
index 51653477023d050ca697d0f0b6e4bad08a19fcca..c6cdcc6f6ae2c74b769eec8f523d5f2ac0d7251b 100644 (file)
@@ -102,10 +102,6 @@ void E_(ClosePostproc)( decoder_t *, void * );
     "when there is not enough time. It's useful with low CPU power " \
     "but it can produce distorted pictures.")
 
-#define TRUNC_TEXT N_("Truncated stream")
-#define TRUNC_LONGTEXT N_("Truncated stream "\
-    "-1: auto, 0: disable, 1: enable")
-
 #define PP_Q_TEXT N_("Post processing quality")
 #define PP_Q_LONGTEXT N_( \
     "Quality of post processing. Valid range is 0 to 6\n" \
index 5ad32552aa7f15acbfaa1e75bad1ccac267a1902..66336dfcb7bd53c2147075c2999625a63212b16a 100644 (file)
@@ -2,7 +2,7 @@
  * video.c: video decoder using the ffmpeg library
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: video.c,v 1.68 2004/03/01 22:35:55 fenrir Exp $
+ * $Id$
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *          Gildas Bazin <gbazin@netcourrier.com>
@@ -232,11 +232,6 @@ int E_(InitVideoDec)( decoder_t *p_dec, AVCodecContext *p_context,
     var_Get( p_dec, "grayscale", &val );
     if( val.b_bool ) p_sys->p_context->flags |= CODEC_FLAG_GRAY;
 
-    /* Decide if we set CODEC_FLAG_TRUNCATED */
-    var_Create( p_dec, "ffmpeg-truncated", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );
-    var_Get( p_dec, "ffmpeg-truncated", &val );
-    if( val.i_int > 0 ) p_sys->p_context->flags |= CODEC_FLAG_TRUNCATED;
-
     /* ***** ffmpeg frame skipping ***** */
     var_Create( p_dec, "ffmpeg-hurry-up", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
     var_Get( p_dec, "ffmpeg-hurry-up", &val );
@@ -295,7 +290,8 @@ int E_(InitVideoDec)( decoder_t *p_dec, AVCodecContext *p_context,
             memcpy( &p[12], p_dec->fmt_in.p_extra, i_size );
 
             /* Now remove all atoms before the SMI one */
-            if( p_sys->p_context->extradata_size > 0x5a && strncmp( &p[0x56], "SMI ", 4 ) )
+            if( p_sys->p_context->extradata_size > 0x5a &&
+                strncmp( &p[0x56], "SMI ", 4 ) )
             {
                 uint8_t *psz = &p[0x52];
 
@@ -309,7 +305,8 @@ int E_(InitVideoDec)( decoder_t *p_dec, AVCodecContext *p_context,
                     }
                     if( !strncmp( &psz[4], "SMI ", 4 ) )
                     {
-                        memmove( &p[0x52], psz, &p[p_sys->p_context->extradata_size] - psz );
+                        memmove( &p[0x52], psz,
+                                 &p[p_sys->p_context->extradata_size] - psz );
                         break;
                     }
 
@@ -331,7 +328,8 @@ int E_(InitVideoDec)( decoder_t *p_dec, AVCodecContext *p_context,
                         p_dec->fmt_in.i_extra );
                 p_sys->p_context->sub_id= ((uint32_t*)p_dec->fmt_in.p_extra)[1];
 
-                msg_Warn( p_dec, "using extra data for RV codec sub_id=%08x", p_sys->p_context->sub_id );
+                msg_Warn( p_dec, "using extra data for RV codec sub_id=%08x",
+                          p_sys->p_context->sub_id );
             }
         }
         else
@@ -396,7 +394,7 @@ picture_t *E_(DecodeVideo)( decoder_t *p_dec, block_t **pp_block )
 
     p_block = *pp_block;
 
-    if( p_block->i_flags&BLOCK_FLAG_DISCONTINUITY )
+    if( p_block->i_flags & BLOCK_FLAG_DISCONTINUITY )
     {
         p_sys->i_buffer = 0;
         p_sys->i_pts = 0; /* To make sure we recover properly */
@@ -704,7 +702,7 @@ static int ffmpeg_GetFrameBuf( struct AVCodecContext *p_context,
         /* Some demuxers only set the dts so let's try to find a useful
          * timestamp from this */
         if( !p_context->has_b_frames || !p_sys->b_has_b_frames ||
-            !p_ff_pic->reference )
+            !p_ff_pic->reference || !p_sys->i_pts )
         {
             p_ff_pic->pts = p_sys->input_dts;
         }
@@ -712,7 +710,11 @@ static int ffmpeg_GetFrameBuf( struct AVCodecContext *p_context,
     }
     else p_ff_pic->pts = 0;
 
-    p_sys->input_pts = p_sys->input_dts = 0;
+    if( p_sys->i_pts ) /* make sure 1st frame has a pts > 0 */
+    {
+        p_sys->input_pts = p_sys->input_dts = 0;
+    }
+
     p_ff_pic->opaque = 0;
 
     /* Not much to do in indirect rendering mode */