Opened 5 years ago

Closed 5 years ago

#676 closed defect (fixed)

unsupported interplay video

Reported by: richardpl Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: interplay
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Sample from here: http://samples.mplayerhq.hu/game-formats/interplay-mve/kpintro_error.mve does not play correctly.

Note that after few seconds size of video is changed.

This is bug happens because ipmovie.c demuxer registers change in video size but it is never passed to interplayvideo.c

Attachments (2)

patchticket676.diff (2.6 KB) - added by cehoyos 5 years ago.
hack.diff (3.1 KB) - added by richardpl 5 years ago.

Download all attachments as: .zip

Change History (11)

comment:1 Changed 5 years ago by cehoyos

  • Component changed from avcodec to undetermined
  • Keywords interplay added
  • Reproduced by developer set
  • Status changed from new to open
$ ffmpeg -i kpintro_error.mve
ffmpeg version N-35063-g2c28e26, Copyright (c) 2000-2011 the FFmpeg developers
  built on Nov 21 2011 23:10:43 with gcc 4.5.3
  configuration: --cc=/usr/local/gcc-4.5.3/bin/gcc
  libavutil    51. 26. 0 / 51. 26. 0
  libavcodec   53. 36. 0 / 53. 36. 0
  libavformat  53. 21. 0 / 53. 21. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 49. 0 /  2. 49. 0
  libswscale    2.  1. 0 /  2.  1. 0
[ipmovie @ 0x1395760] Estimating duration from bitrate, this may be inaccurate

Seems stream 0 codec frame rate differs from container frame rate: 1000000.00 (1000000/1) -> 14.99 (125000/8341)
Input #0, ipmovie, from 'kpintro_error.mve':
  Duration: 00:08:51.12, start: 0.000000, bitrate: 352 kb/s
    Stream #0:0: Video: interplayvideo, pal8, 640x320, 14.99 tbr, 1000k tbn, 1000k tbc
    Stream #0:1: Audio: interplay_dpcm, 22050 Hz, 2 channels, s16, 352 kb/s
At least one output file must be specified

Changed 5 years ago by cehoyos

comment:2 Changed 5 years ago by cehoyos

POC attached.

comment:3 Changed 5 years ago by richardpl

Patch works but it is not perfect, there is one error in decoding.

Should avcodec_set_dimensions() be used for this?

Changed 5 years ago by richardpl

comment:4 Changed 5 years ago by richardpl

Attached patch does not have error while decoding and plays OK in ffplay and at least plays in mplayer bigger part of sample.
MPlayer for some reason dumps few last frames for reason yet to find.

comment:5 Changed 5 years ago by richardpl

Fixed in master.

comment:6 Changed 5 years ago by cehoyos

Did you test?
It does not work correctly here...

comment:7 Changed 5 years ago by richardpl

Does work with ffplay, doesn't with ffmpeg. mplayer think it gets EOF and exits too early.

comment:8 Changed 5 years ago by cehoyos

That's why I think the problem has not been fixed.
ffmpeg is the primary application.

comment:9 Changed 5 years ago by michael

  • Resolution set to fixed
  • Status changed from open to closed
Note: See TracTickets for help on using tickets.