[FFmpeg-devel] [PATCH] add RV10 fourcc to libavformat/riff.c

Corey Hickey bugfood-ml
Mon May 14 00:05:26 CEST 2007


Corey Hickey wrote:
> Michael Niedermayer wrote:
>>> RV10 is missing. Is this the right place to put it?
>> hmm, may i ask why that should be there?
> 
> I don't know at all. That's why I asked. :) It was just as easy to send
> a patch as well.
> 
>> iam not against adding it if there are some rv10 in avi around
>> iam also not against adding it if stream copy of rv10 into avi
>> would then produce a playable avi file
> 
> Apparently rv10 in avi works, but it does so with or without my patch.

...actually, when I investigated further, I found some problems the
patch reveals.

------------- without patching riff.c --------------
Works:
$ ffmpeg -i a.mpg -an -vcodec rv10 rv10.rm
(plays fine in ffplay and mplayer)


Does not work:
$ ffmpeg -i a.mpg -an -vcodec rv10 rv10.avi
(encodes happily, but output avi has no fourcc)
$ ffmpeg -i rv10.rm -vcodec copy rv10.avi
(same as above)

-------------- patched riff.c ------------------
Still works:
$ ffmpeg -i a.mpg -an -vcodec rv10 rv10.rm
(still plays fine in ffplay and mplayer)


Sort of works:
$ ffmpeg -i a.mpg -an -vcodec rv10 rv10.avi
(plays fine in mplayer; ffplay doesn't like it; see 1. below)
$ ffmpeg -i rv10.rm -vcodec copy rv10.avi
(plays fine in ffplay; mplayer doesn't like it; see 2. below)

------------------------------------------------

1. Using ffmpeg to directly encode rv10 to an avi makes a file that
mplayer plays fine (patched or unpatched, using either native or lavf
demuxer); however, ffplay segfaults.

2. Using ffmpeg to copy rv10 from an rm file to an avi makes a file that
ffplay plays file (when patched); however, mplayer doesn't play it. With
the native demuxer, it shows lots of errors:
[rv10 @ 0xf6f880]warning: first frame is no keyframe
[rv10 @ 0xf6f880]ERROR at MB 0 0
[rv10 @ 0xf6f880]marker missing
[rv10 @ 0xf6f880]concealing 330 DC, 330 AC, 330 MV errors
[rv10 @ 0xf6f880]ERROR at MB 0 0
[rv10 @ 0xf6f880]marker missing
[rv10 @ 0xf6f880]concealing 330 DC, 330 AC, 330 MV errors
...etc...
With -demuxer lavf, mplayer segfaults.

3. Using mencoder to copy rv10 from an rm file to an avi makes a file
that mplayer plays fine (patched and unpatched, using either demuxer);
however, ffplay shows lots of errors:
[rv10 @ 0xa31ee0]marker missing
[rv10 @ 0xa31ee0]error, qscale:0
[rv10 @ 0xa31ee0]HEADER ERROR
[rv10 @ 0xa31ee0]marker missing
[rv10 @ 0xa31ee0]error, qscale:0
[rv10 @ 0xa31ee0]HEADER ERROR



I know none of these are a good bugreport; I'll try to investigate them
later. It seems I've opened a can or worms I wasn't expecting. Patching
riff.c doesn't seem to break anything, though, so if that's your
preference then I can go ahead and do so.

It's your call.

-Corey




More information about the ffmpeg-devel mailing list