Opened 14 years ago

Closed 14 years ago

#90 closed defect (fixed)

ffplay - crash with rv10 codec

Reported by: ami_stuff Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

http://samples.multimedia.cx/real/VC-RV10/dannie-56.rm

C:\>ffmpeg -i "C:\dannie-56.rm"
FFmpeg version git-N-29181-ga304071, Copyright (c) 2000-2011 the FFmpeg develope
rs
  built on Apr 18 2011 21:24:03 with gcc 4.5.2
  configuration: --enable-gpl --enable-version3 --enable-runtime-cpudetect --ena
ble-memalign-hack --enable-avisynth --enable-bzlib --enable-frei0r --enable-libo
pencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --
enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger
 --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enabl
e-libx264 --enable-libxavs --enable-libxvid --enable-zlib --cross-prefix=i686-w6
4-mingw32- --target-os=mingw32 --arch=x86_32 --extra-cflags=-I/home/kyle/softwar
e/ffmpeg/external-libraries/win32/include --extra-ldflags=-L/home/kyle/software/
ffmpeg/external-libraries/win32/lib --pkg-config=pkg-config
  libavutil    50. 40. 1 / 50. 40. 1
  libavcodec   52.120. 0 / 52.120. 0
  libavformat  52.108. 0 / 52.108. 0
  libavdevice  52.  4. 0 / 52.  4. 0
  libavfilter   1. 79. 0 /  1. 79. 0
  libswscale    0. 13. 0 /  0. 13. 0
Input #0, rm, from 'C:\dannie-56.rm':
  Metadata:
    title           : Dannie VS. Ginger
    author          : Catfight Productions
    copyright       : Catfight Productions 1997
    comment         :
  Duration: 00:00:19.15, start: 0.000000, bitrate: 98 kb/s
    Stream #0.0: Audio: ac3, 8000 Hz, mono, s16, 12 kb/s
    Stream #0.1: Video: rv10, yuv420p, 320x240, 22 kb/s, 24 tbr, 1k tbn, 24 tbc
At least one output file must be specified

I belive the crash is related to this patch:

--- a/ffplay.c
+++ b/ffplay.c
@@ -31,6 +31,7 @@

    #include "libavutil/imgutils.h"
    #include "libavutil/parseutils.h"
    #include "libavutil/samplefmt.h"

+#include "libavutil/avassert.h"

    #include "libavformat/avformat.h"
    #include "libavdevice/avdevice.h"
    #include "libswscale/swscale.h"

@@ -1582,6 +1583,8 @@ static int input_get_buffer(AVCodecContext *codec, AVFrame *pic)

    int i, w, h, stride[4];
    unsigned edge;


+ av_assert0(codec->flags & CODEC_FLAG_EMU_EDGE);
+

    if (codec->codec->capabilities & CODEC_CAP_NEG_LINESIZES)

        perms |= AV_PERM_NEG_LINESIZES;


@@ -1664,8 +1667,8 @@ static int input_init(AVFilterContext *ctx, const char *args, void *opaque)

    codec = priv->is->video_st->codec;
    codec->opaque = ctx;
    if((codec->codec->capabilities & CODEC_CAP_DR1)

    && codec->codec_id != CODEC_ID_SVQ1 chroma alignment from lavfi is insufficient 

    ) {

+ codec->flags |= CODEC_FLAG_EMU_EDGE;

    priv->use_dr1 = 1;
    codec->get_buffer = input_get_buffer;
    codec->release_buffer = input_release_buffer;

Change History (1)

comment:1 by Michael Niedermayer, 14 years ago

Reproduced by developer: set
Resolution: fixed
Status: newclosed

thx, fixed

Note: See TracTickets for help on using tickets.