Opened 19 years ago

Closed 18 years ago

Last modified 18 years ago

#369 closed enhancement (wontfix)

allow the use of libvc1 (WMV9 support)

Reported by: stranche@… Owned by: moritz@…
Priority: if idle Component: vd
Version: HEAD Severity: minor
Keywords: Cc:
Blocked By: Blocking:
Reproduced by developer: no Analyzed by developer: no

Description

Request

here we are, the libvc1 that allows the native support of WMV9 (in)famous format
hits the road.

the instructions to do so for VideoLAN are out, MPlayer should of course also do
something about it, isn't it ? :)

http://nanocrew.net/?p=129

$ cd ~/videolan ; wget http://nanocrew.net/software/libvc1-1.0.tar.gz ; tar
-zxvf libvc1-1.0.tar.gz
$ wget
http://USERNAME:PASSWORD@www.smpte-vc1.org/TrialPublication/Decoder/VC1_reference_decoder_release6.zip
$ unzip VC1_reference_decoder_release6.zip
$ cp VC1_reference_decoder_release6/decoder/*.[ch] libvc1-1.0/src/.
$ cp VC1_reference_decoder_release6/shared/*.[ch] libvc1-1.0/src/.
$ cd libvc1-1.0 ; ./bootstrap ; ./configure --prefix=/usr ; make

Change History (3)

comment:1 by compn, 19 years ago

Component: demuxervd
Priority: normalif idle
Resolution: fixed
Severity: normalenhancement
Status: newclosed
Version: unspecifiedCVS

use mike melanson's howto to get libvc1 into ffmpeg/libavcodec
then build mplayer with libavcode+libvc1

http://multimedia.cx/eggs/?p=129#more-129

Some people have asked me for my code to make the SMPTE VC-1 reference decoder
work with FFmpeg, slow though it may be. I suppose I could make a patch. But the
official version of FFmpeg is whatever happens to be in CVS at the current
moment. So any patch I could produce would work for maybe a day. So get ready to
do a little editing on your local FFmpeg CVS tree. The steps:

procure the VC1_reference_decoder_release6.zip file from the main site and unzip
the tree somewhere
have a copy of FFmpeg’s CVS tree handy; the rest of these instructions will
assume that you are sitting in the root of the FFmpeg tree
create a directory called libavcodec/libvc1
copy all of the *.c and *.h files from VC1_reference_decoder_release6/decoder/
into libavcodec/libvc1/
copy all of the *.c and *.h files from VC1_reference_decoder_release6/shared/
into libavcodec/libvc1/
place the libvc1-makefile.txt into libavcodec/libvc1/Makefile
change directory into libavcodec/libvc1 and type ‘make’
change directory back to the FFmpeg root
place the smpte-vc1.c file into libavcodec/
edit libavcodec/vc9.c, go the very end of the file, and add #if 0/#endif around
the wmv3_decoder AVCodec structure; this will keep it from conflicting with the
new SMPTE WMV3 decoder
edit libavcodec/Makefile and add smpte-vc1.o to the end of the OBJS list
edit the top-level Makefile and add “-L./libavcodec/libvc1 -lvc1″ (without the
quotes) to FFLIBS
run ‘./configure’ at the top level if you have not already done so for this tree
run ‘make’ at the top level

That should be all there is to it. If FFmpeg declines to acknowledge the ability
to decode WMV3 data run ‘./ffmpeg -formats | grep wmv3′ and make sure you see
(after the versioning info): ” D V wmv3″.

Remember, the performance of the SMPTE VC-1 decoder is, as they say, “nothing to
write home about”. It’s dog slow. It’s not meant to be fast. And it will not be
optimized. Ever. Eventually, we will create our own decoder that leverages
optimized VLC decoding functions, transforms, filters, etc. But in the meantime,
if you want to experiment with the reference decoder, this should work for you.

comment:2 by stranche@…, 18 years ago

Resolution: fixed
Status: closedreopened

(In reply to comment #1)
Here is an entry in a blog mostly interesting

http://blog.linux.org.tw/~jserv/archives/001545.html

and more recently

http://blog.linux.org.tw/~jserv/archives/001726.html

I have tested it on my Opteron system (meaning a 64bit MPlayer binary) and I am
very happy with it.
Some files still have trouble but it reads mostly without trouble, this calls
for an integration and free us all of the
infamous-video-format-that-could-not-be-read

comment:3 by reimar, 18 years ago

Resolution: wontfix
Status: reopenedclosed

Thanks for informing, but integrating this is not possible for licensing
reasons. Also a VC-1 decoder is a "Google Summer of Code" project, so there will
be (actually already is) some progress anyway.

Note: See TracTickets for help on using tickets.