[haiku-bugs] Re: [Haiku] #12073: VCD playback

  • From: "pulkomandy" <trac@xxxxxxxxxxxx>
  • Date: Wed, 26 Jul 2017 20:31:07 -0000

#12073: VCD playback
------------------------------------+----------------------------
   Reporter:  vidrep                |      Owner:  nobody
       Type:  enhancement           |     Status:  new
   Priority:  normal                |  Milestone:  Unscheduled
  Component:  Audio & Video/Codecs  |    Version:  R1/Development
 Resolution:                        |   Keywords:
 Blocked By:                        |   Blocking:
Has a Patch:  0                     |   Platform:  All
------------------------------------+----------------------------

Comment (by pulkomandy):

 So, it seems this format is not handled by ffmpeg.
 However, it is not too hard to convert the files. For example I found
 http://cpansearch.perl.org/src/ALLENDAY/Video-Info-0.993/eg/cdxa2mpeg.c

 Basically, the VCD sample I was given has "DAT" files, which are RIFF
 header followed by a short format ("fmt ") chunk and then a large "data"
 chunk. The data chunk has some padding at the start and end, and the
 remaining parts are actually a plain mpeg file.

 So basically:
 - Parse the RIFF header (should be of type CDXA) to find the "data" chunk
 - Read the chunk contents, 2324 bytes at a time (this is because Video-CD
 have no error correction, hence the sector size is 2324 instead of the
 usual 2048 bytes)
 - Skip sectors which are filled with 00 bytes
 - Get the remaining data, which is an MPEG file that ffmpeg can decode
 just fine.

 This will allow us to play a rip of a VCD. To play an actual VCD, we also
 need to handle these 2324 bytes sectors, which I'm not sure our iso9660
 filesystem and ATAPI stack are able to.

 I also don't know how we can integrate this with the media kit decoding
 framework. Does it support nested containers, so that we could write a
 plugin to just skip the RIFF header, and then the remaining parts would be
 fed to ffmpeg/libavformat?

--
Ticket URL: <https://dev.haiku-os.org/ticket/12073#comment:2>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.

Other related posts: