Opened 13 years ago

Closed 13 years ago

Last modified 11 years ago

#58 closed defect (fixed)

sp5x playback regression

Reported by: ami_stuff Owned by: Michael Niedermayer
Priority: important Component: ffplay
Version: git Keywords: crash abort
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

seems like regression because of this patch (more precise line "av_assert0(codec->flags & CODEC_FLAG_EMU_EDGE);"):

--- 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;

http://samples.mplayerhq.hu/V-codecs/SP5x/sunplus_32bit_codec/img_0020.avi

C:\>ffplay C:\img_0020.avi
FFplay version git-N-28948-g9d4cb45, Copyright (c) 2003-2011 the FFmpeg develope
rs

built on Apr 8 2011 16:57:22 with gcc 4.5.2
configuration: --enable-gpl --enable-version3 --enable-runtime-cpudetect --ena

ble-memalign-hack --arch=i686 --target-os=mingw32 --cross-prefix=i686-w64-mingw3
2- --enable-avisynth --enable-bzlib --enable-frei0r --enable-libopencore-amrnb -
-enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3la
me --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libsp
eex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --ena
ble-libxavs --enable-libxvid --enable-zlib --extra-cflags=-I/home/kyle/software/
ffmpeg/external-libs/32-bit/include --extra-ldflags=-L/home/kyle/software/ffmpeg
/external-libs/32-bit/lib --pkg-config=pkg-config

libavutil 50. 40. 1 / 50. 40. 1
libavcodec 52.117. 0 / 52.117. 0
libavformat 52.106. 0 / 52.106. 0
libavdevice 52. 4. 0 / 52. 4. 0
libavfilter 1. 77. 1 / 1. 77. 1
libswscale 0. 13. 0 / 0. 13. 0

Input #0, avi, from 'C:\img_0020.avi':

Duration: 00:00:10.26, start: 0.000000, bitrate: 311 kb/s

Stream #0.0: Video: sp5x, yuvj420p, 320x240, 15 tbr, 15 tbn, 15 tbc

[ffsink @ 01EB2480] auto-inserting filter 'auto-inserted scaler 0' between the f
ilter 'src' and the filter 'out'
[scale @ 01EB2700] w:320 h:240 fmt:yuvj420p -> w:320 h:240 fmt:yuv420p flags:0x4

Assertion codec->flags & 0x4000 failed at /home/kyle/software/ffmpeg/source/ffmp
eg/ffplay.c:1586

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

btw. this codec seems to be jpeg, so maybe supported max_lowres should be lowered to 3 too?

Change History (7)

comment:1 by Carl Eugen Hoyos, 13 years ago

Priority: normalimportant
Reproduced by developer: set
Status: newopen
Version: unspecifiedgit

Not reproducible with --disable-avfilter.

comment:2 by ami_stuff, 13 years ago

another problematic file uploaded to incoming as "ticket58.mov"

C:\>ffmpeg -i C:\ticket58.mov
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

Seems stream 1 codec frame rate differs from container frame rate: 30000.00 (300
00/1) -> 29.97 (30000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\ticket58.mov':
  Metadata:
    creation_time   : 2004-06-14 12:15:14
  Duration: 00:00:58.88, start: 0.000000, bitrate: 498 kb/s
    Stream #0.0(eng): Audio: qdm2, 44100 Hz, 2 channels, s16, 40 kb/s
    Metadata:
      creation_time   : 2004-06-14 12:15:14
    Stream #0.1(eng): Video: svq3, yuvj420p, 320x240, 457 kb/s, 29.77 fps, 29.97
 tbr, 30k tbn, 30k tbc
    Metadata:
      creation_time   : 2004-06-14 12:15:14
At least one output file must be specified
Last edited 13 years ago by ami_stuff (previous) (diff)

comment:3 by ami_stuff, 13 years ago

http://samples.multimedia.cx/amv/test2.amv

C:\>ffplay "C:\test2.amv"
FFplay version git-N-29181-ga304071, Copyright (c) 2003-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
[avi @ 01D5D4F0] scale/rate is 0/0 which is invalid. (This file has been generat
ed by broken software.)
    Last message repeated 1 times
Input #0, avi, from 'C:\test2.amv':
  Duration: 00:00:00.00, start: 0.000000, bitrate: -2147483 kb/s
    Stream #0.0: Video: amv, yuvj420p, 96x64, 8 tbr, 8 tbn, 8 tbc
    Stream #0.1: Audio: adpcm_ima_amv, 22050 Hz, 1 channels, s16, 352 kb/s
[ffsink @ 01D623F0] auto-inserting filter 'auto-inserted scaler 0' between the f
ilter 'src' and the filter 'out'
[scale @ 01D6FDD0] w:96 h:64 fmt:yuvj420p -> w:96 h:64 fmt:yuv420p flags:0x4
Assertion codec->flags & 0x4000 failed at /home/kyle/software/ffmpeg/source/ffmp
eg/ffplay.c:1575

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

comment:4 by ami_stuff, 13 years ago

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

comment:5 by Carl Eugen Hoyos, 13 years ago

Resolution: fixed
Status: openclosed

comment:6 by ami_stuff, 13 years ago

sp5x is fixed, but not the rest of the samples and "test2.amv" plays now upside down, so i will create tickets for them.

comment:7 by Carl Eugen Hoyos, 11 years ago

Keywords: crash abort added
Note: See TracTickets for help on using tickets.