[haiku-bugs] Re: [Haiku] #6561: [MediaPlayer] crashes on playing wmv file

  • From: "stippi" <trac@xxxxxxxxxxxx>
  • Date: Sat, 18 Sep 2010 13:44:30 -0000

#6561: [MediaPlayer] crashes on playing wmv file
---------------------------------------+------------------------------------
  Reporter:  diver                     |         Owner:  stippi        
      Type:  bug                       |        Status:  new           
  Priority:  normal                    |     Milestone:  R1            
 Component:  Applications/MediaPlayer  |       Version:  R1/Development
Resolution:                            |      Keywords:                
Blocked By:                            |   Has a Patch:  0             
  Platform:  All                       |      Blocking:                
---------------------------------------+------------------------------------

Comment (by stippi):

 Well, what can I say... even the old VLC on Haiku plays some files much
 better than MediaPlayer. Integrating FFmpeg into a media player directly
 is very different from writing a Haiku Media Kit plugin which has to
 fullfill many more requirements: libavcodec needs to be separate in order
 to support other decoder/encoder plugins together with FFmpeg
 demuxers/muxers or the libavcodec codecs together with other Haiku
 readers/writers, each media stream needs it's own AVFormatContext, since
 FFmpeg as-is does not support seeking each stream individually, but that's
 required by our API. Also our MediaKit API shall support decoding
 audio/video in different threads, but FFmpeg can only demux in one thread.
 If I seek in ffplay, the code for that is very simple, because basically
 ffplay does not care where you seeked, as long as it is close enough to
 where you wanted. In the MediaKit, applications may require to seek to the
 keyframe before the requested frame, or to the one behind it, each stream
 independently. If I ignore that in the plug-in these applications don't
 work correctly. In FFmpeg each demuxer has a different quality. Yesterday
 I found out that even when you request from the FFmpeg API to seek to the
 keyframe before the requested position, some demuxers may seek to a later
 point in the file regardless. It's hard to get things right under these
 conditions. Something works well with one stream type and as soon as you
 try the next, the problems start all over again.

 All in all, I am well aware that the FFmpeg plugin does not work perfectly
 for all types of files, but it *is* a little more complicated to get this
 right than what mplayer is doing. It also wouldn't help to design
 MediaPlayer around the defficiencies in FFmpeg, that doesn't help more
 demanding applications like Clockwerk.

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/6561#comment:10>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: