From pkoshevoy at sorensonmedia.com Thu Apr 1 18:43:54 2010 From: pkoshevoy at sorensonmedia.com (Pavel Koshevoy) Date: Thu, 01 Apr 2010 10:43:54 -0600 Subject: [Matroska-devel] vc9 solution/projects, etc... In-Reply-To: References: <4BB1221D.6030808@sorensonmedia.com> Message-ID: <4BB4CD4A.3000409@sorensonmedia.com> OK, I've attached my patches, generated with the following commands: diff -Naur libebml-0.7.8 libebml > libebml-0.7.8.patch diff -Naur libmatroska-0.8.1 libmatroska > libmatroska-0.8.1.patch I've added test10, mostly to help me better understand the matroska file layout. I hope this is useful. I've only tested this on Windows with Visual Studio 2008, and make no warranties that it works on *nix. Pavel. On 3/31/2010 2:45 AM, Steve Lhomme wrote: > Yes you can send them over I will try to integrate them. All the code is > supposed to be manageable by coremake, which can generate makefiles for > VC9 but also plenty other IDEs & build systems. > > On Mon, Mar 29, 2010 at 11:56 PM, Pavel Koshevoy > > wrote: > > Hi, > > I just started poking around in libebml-0.7.8 and libmatroska-0.8.1 on > Windows last week. I tried building libmatroska/tests with Visual > Studio 2008 and it didn't work out of the box, so I spent some time > fixing the projects (and some code). libmatroska/tests/ebml/test0.cpp > wouldn't build at all (obsolete code?), so I rewrote it to the best of > my abilities. > > I haven't fixed everything. So far I've got test0, test6 and test8 > building using (Debug) DLLs for ebml, matroska, and MS runtime libs. > test0 works, test6 asserts (I am going to look into that), and I haven't > tried running test8 yet. > > Does anyone want these changes? > > Thank you, > Pavel. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: libebml-0.7.8.patch URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: libmatroska-0.8.1.patch URL: From chanam.geo at yahoo.com Thu Apr 1 21:57:32 2010 From: chanam.geo at yahoo.com (Arick Chan) Date: Thu, 1 Apr 2010 12:57:32 -0700 (PDT) Subject: [Matroska-devel] Possible bug in Haali Media Splitter with MP4 files Message-ID: <314149.81610.qm@web110206.mail.gq1.yahoo.com> It seems the latest version (2010/03/27) has fixed this problem. Thanks! -Aktan -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthewjheaney at hotmail.com Thu Apr 1 22:41:25 2010 From: matthewjheaney at hotmail.com (Matthew Heaney) Date: Thu, 1 Apr 2010 16:41:25 -0400 Subject: [Matroska-devel] multiple audio tracks with different languages Message-ID: Hello, The most recent release of VOB2MKV (vo2mkv-1.0.4) included a splitter-style DirectShow filter, MKVSPLIT. http://vob2mkv.codeplex.com/ Previous releases included only a source-style demuxer, MKVSOURCE, but this doesn't work for network downloads, hence the need for the splitter filter too. But downloading a file over a network made me aware about how much data was actually being downloaded (a problem I didn't worry about when only playing a local file). Suppose I mux an MKV file with multiple audio tracks, each having a different language. Typically a client will only view a single language track. If all of the tracks are interleaved in the file, and the file downloaded from a server to a client, and the client only selects a single track, then that would mean lots of data is being downloaded from the server only to be thrown away by the client. My question is whether there is a way to mux the MKV file (or files) such that only a single track of audio need be downloaded from the server. Is there an intended mechanism for doing this? Could each audio track go in its own segment? (Or perhaps there is a better way.) My question about that approach is that the multiple audio tracks, each in their own segment, all start at the same time. Are segments intended to be stitched together sequentially, such that one segment begins after the previous segment ends? Or can segments exist "in parallel"? My understanding is that segments in different files can be linked together, using segment UIDs. But what about putting multiple segments in a single file? Does this make any sense? Is there a difference between putting multiple segment in a single file, versus multiple segments in multiple files? Thanks, Matt From pkoshevoy at sorensonmedia.com Thu Apr 1 22:52:43 2010 From: pkoshevoy at sorensonmedia.com (Pavel Koshevoy) Date: Thu, 01 Apr 2010 14:52:43 -0600 Subject: [Matroska-devel] multiple audio tracks with different languages In-Reply-To: References: Message-ID: <4BB5079B.4080505@sorensonmedia.com> I can't answer your specific questions, but it sounds to me that you may need a streaming solution for matroska container. I recently found out that DivX Web Player supports streaming MKV files, you may want to give it a try. It doesn't require a specialized streaming server, plain HTTP/1.1 is all you need to host the matroska file. You can get the streaming player here: http://labs.divx.com/node/14711 Pavel. On 4/1/2010 2:41 PM, Matthew Heaney wrote: > Hello, > > The most recent release of VOB2MKV (vo2mkv-1.0.4) included a splitter-style > DirectShow filter, MKVSPLIT. > > http://vob2mkv.codeplex.com/ > > Previous releases included only a source-style demuxer, MKVSOURCE, but this > doesn't work for network downloads, hence the need for the splitter filter > too. > > But downloading a file over a network made me aware about how much data was > actually being downloaded (a problem I didn't worry about when only playing > a local file). > > Suppose I mux an MKV file with multiple audio tracks, each having a > different language. Typically a client will only view a single language > track. If all of the tracks are interleaved in the file, and the file > downloaded from a server to a client, and the client only selects a single > track, then that would mean lots of data is being downloaded from the server > only to be thrown away by the client. > > My question is whether there is a way to mux the MKV file (or files) such > that only a single track of audio need be downloaded from the server. Is > there an intended mechanism for doing this? > > Could each audio track go in its own segment? (Or perhaps there is a better > way.) My question about that approach is that the multiple audio tracks, > each in their own segment, all start at the same time. Are segments > intended to be stitched together sequentially, such that one segment begins > after the previous segment ends? Or can segments exist "in parallel"? > > My understanding is that segments in different files can be linked together, > using segment UIDs. But what about putting multiple segments in a single > file? Does this make any sense? Is there a difference between putting > multiple segment in a single file, versus multiple segments in multiple > files? > > Thanks, > Matt > > > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: http://dir.gmane.org/gmane.comp.multimedia.matroska.devel From moritz at bunkus.org Thu Apr 1 22:56:41 2010 From: moritz at bunkus.org (Moritz Bunkus) Date: Thu, 1 Apr 2010 22:56:41 +0200 Subject: [Matroska-devel] multiple audio tracks with different languages In-Reply-To: References: Message-ID: <201004012256.42551.moritz@bunkus.org> Hey, On Thursday 01 April 2010 22:41:25 Matthew Heaney wrote: > My question is whether there is a way to mux the MKV file (or files) > such that only a single track of audio need be downloaded from the > server. Is there an intended mechanism for doing this? No. This is pretty much a non-issue (meaning no one has ever asked for such a feature), especially as audio bandwidth is small compared to video bandwidth. > Could each audio track go in its own segment? That will only make downloading a file a bitch -- you'll have to download from very different file positions all the time. Playing back such un-interleaved files from slow media like CDROMs will be almost impossible. > Are segments intended to be stitched together sequentially, That's the way they're usually used. > My understanding is that segments in different files can be linked together, > using segment UIDs. But what about putting multiple segments in a single > file? Almost no player supports such files, and those that do play them sequentially. Regards, Mosu -- If Darl McBride was in charge, he'd probably make marriage unconstitutional too, since clearly it de-emphasizes the commercial nature of normal human interaction, and probably is a major impediment to the commercial growth of prostitution. - Linus Torvalds From nunnaramakrishna at gmail.com Tue Apr 6 15:05:44 2010 From: nunnaramakrishna at gmail.com (nunnaramakrishna at gmail.com) Date: 6 Apr 2010 18:35:44 +0530 Subject: [Matroska-devel] Stop a nuclear disaster Message-ID: <20100406130544.23910.qmail@greenpeace.in> An HTML attachment was scrubbed... URL: From slhomme at matroska.org Thu Apr 8 11:44:25 2010 From: slhomme at matroska.org (Steve Lhomme) Date: Thu, 8 Apr 2010 11:44:25 +0200 Subject: [Matroska-devel] HTML5 Message-ID: Hi everyone, There are some growing concern about of the use of Ogg (.ogv in particular) to stream video over HTTP. While it serves its purpose, it's not optimal, as a big overhead and make simple things like seeking tricky. There is an interresting discussion happening here (registration required to be able to reply): http://lwn.net/SubscriberLink/382478/5b1997dd0d3052a0/ I added my little contribution to the debate in explaning that Matroska *is* a serious candidate as well. Plus it has the advantage of supported both Theora & Vorbis and H264 & AAC/MP3 (while Ogg and MP4 have a hard time supporting the other "side"). I am currently working on libebml2, our C based BSD version of libebml. Once I validate it in mkvtoolnix I will try to add support for Matroska in Firefox and/or Chromium. So people can actually see that Matroska works in those cases. -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthewjheaney at hotmail.com Thu Apr 8 17:23:49 2010 From: matthewjheaney at hotmail.com (Matthew Heaney) Date: Thu, 8 Apr 2010 11:23:49 -0400 Subject: [Matroska-devel] HTML5 In-Reply-To: References: Message-ID: From: matroska-devel-bounces at lists.matroska.org [mailto:matroska-devel-bounces at lists.matroska.org] On Behalf Of Steve Lhomme Sent: Thursday, 08 April, 2010 05:44 To: Discussion about the current and future development of Matroska Subject: [Matroska-devel] HTML5 I added my little contribution to the debate in explaning that Matroska *is* a serious candidate as well. Plus it has the advantage of supported both Theora & Vorbis and H264 & AAC/MP3 (while Ogg and MP4 have a hard time supporting the other "side"). A few days ago I asked here on this list about strategies for HTTP streaming of MKV files. Do you have any advice about how to do this? -Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: From slhomme at matroska.org Thu Apr 8 17:28:11 2010 From: slhomme at matroska.org (Steve Lhomme) Date: Thu, 8 Apr 2010 17:28:11 +0200 Subject: [Matroska-devel] HTML5 In-Reply-To: References: Message-ID: Streaming from what point of view ? The player or the server ? On the server side it's easy, it should present the stream as a file, where you can (optionally) seek. It's standard HTTP streaming. On the player side you may need to avoid "forward" seeking. It's possible in HTTP but is not optimal in terms of connection speed. So whatever element that requires you to seek to far in the file should be avoid. Normally the Segment Info and Track Info headers are at the beggining of the file and that's all you need for playback. If you want to handle seeking, you may load the Cue list. But it's likely that you have to seek forward in the file to do that. So I would advise to only load it when you need it (ie when the user actually wants to seek). On Thu, Apr 8, 2010 at 5:23 PM, Matthew Heaney wrote: > > > > > *From:* matroska-devel-bounces at lists.matroska.org [mailto: > matroska-devel-bounces at lists.matroska.org] *On Behalf Of *Steve Lhomme > *Sent:* Thursday, 08 April, 2010 05:44 > *To:* Discussion about the current and future development of Matroska > *Subject:* [Matroska-devel] HTML5 > > > > > > I added my little contribution to the debate in explaning that Matroska > *is* a serious candidate as well. Plus it has the advantage of supported > both Theora & Vorbis and H264 & AAC/MP3 (while Ogg and MP4 have a hard time > supporting the other "side"). > > > > A few days ago I asked here on this list about strategies for HTTP > streaming of MKV files. Do you have any advice about how to do this? > > > > -Matt > > > > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: > http://dir.gmane.org/gmane.comp.multimedia.matroska.devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kurtnoise at free.fr Thu Apr 8 20:15:09 2010 From: kurtnoise at free.fr (Kurtnoise) Date: Thu, 08 Apr 2010 20:15:09 +0200 Subject: [Matroska-devel] HTML5 In-Reply-To: References: Message-ID: Hi Steve, Steve Lhomme a ?crit : > Streaming from what point of view ? The player or the server ? > > On the server side it's easy, it should present the stream as a file, > where you can (optionally) seek. It's standard HTTP streaming. > > On the player side you may need to avoid "forward" seeking. It's > possible in HTTP but is not optimal in terms of connection speed. So > whatever element that requires you to seek to far in the file should be > avoid. Normally the Segment Info and Track Info headers are at the > beggining of the file and that's all you need for playback. If you want > to handle seeking, you may load the Cue list. But it's likely that you > have to seek forward in the file to do that. So I would advise to only > load it when you need it (ie when the user actually wants to seek). > Did you try already the DivX Plus HD solution [1] to stream mkv files ? If yes, may I ask you to have your comments on this...;-) Best Regards, Kurtnoise [1] http://developer.divx.com/docs/DivX_Web_Player From slhomme at matroska.org Thu Apr 8 20:36:45 2010 From: slhomme at matroska.org (Steve Lhomme) Date: Thu, 8 Apr 2010 20:36:45 +0200 Subject: [Matroska-devel] HTML5 In-Reply-To: References: Message-ID: I have installed it but never actually tried it... All I know is that it's reported to work, with virtually any web server, even the worst ones (dixit one of the plugin developpers). At least it proves that Matroska on the web is very possible (a lot better than the AVI DivX used so far). Also HTML5 is a little different in that it's not supposed to use a plugin, but is builtin the browser. On Thu, Apr 8, 2010 at 8:15 PM, Kurtnoise wrote: > Hi Steve, > > Steve Lhomme a ?crit : > > Streaming from what point of view ? The player or the server ? > > > > On the server side it's easy, it should present the stream as a file, > > where you can (optionally) seek. It's standard HTTP streaming. > > > > On the player side you may need to avoid "forward" seeking. It's > > possible in HTTP but is not optimal in terms of connection speed. So > > whatever element that requires you to seek to far in the file should be > > avoid. Normally the Segment Info and Track Info headers are at the > > beggining of the file and that's all you need for playback. If you want > > to handle seeking, you may load the Cue list. But it's likely that you > > have to seek forward in the file to do that. So I would advise to only > > load it when you need it (ie when the user actually wants to seek). > > > Did you try already the DivX Plus HD solution [1] to stream mkv files ? > If yes, may I ask you to have your comments on this...;-) > > > > Best Regards, > Kurtnoise > > > [1] http://developer.divx.com/docs/DivX_Web_Player > > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: > http://dir.gmane.org/gmane.comp.multimedia.matroska.devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ogre at chaocracy.net Fri Apr 9 00:05:53 2010 From: ogre at chaocracy.net (Kristopher Gilbert) Date: Thu, 8 Apr 2010 18:05:53 -0400 Subject: [Matroska-devel] HTML5 Message-ID: <1500d545-a055-4885-9025-9ad75608bd12@chaocracy.net> I couldn't even get the DivX MKV splitter to work properly. It just crashed WMP as soon as it ran. Ironically, it worked in Media Center but FastForward/Rewind didn't work properly like they did in the beta/dev releases. -----Original Message----- From: matroska-devel-bounces at lists.matroska.org [mailto:matroska-devel-bounces at lists.matroska.org] On Behalf Of Kurtnoise Sent: Thursday, April 08, 2010 2:15 PM To: matroska-devel at lists.matroska.org Subject: Re: [Matroska-devel] HTML5 Hi Steve, Steve Lhomme a ?crit : > Streaming from what point of view ? The player or the server ? > > On the server side it's easy, it should present the stream as a file, > where you can (optionally) seek. It's standard HTTP streaming. > > On the player side you may need to avoid "forward" seeking. It's > possible in HTTP but is not optimal in terms of connection speed. So > whatever element that requires you to seek to far in the file should be > avoid. Normally the Segment Info and Track Info headers are at the > beggining of the file and that's all you need for playback. If you want > to handle seeking, you may load the Cue list. But it's likely that you > have to seek forward in the file to do that. So I would advise to only > load it when you need it (ie when the user actually wants to seek). > Did you try already the DivX Plus HD solution [1] to stream mkv files ? If yes, may I ask you to have your comments on this...;-) Best Regards, Kurtnoise [1] http://developer.divx.com/docs/DivX_Web_Player _______________________________________________ Matroska-devel mailing list Matroska-devel at lists.matroska.org http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel Read Matroska-Devel on GMane: http://dir.gmane.org/gmane.comp.multimedia.matroska.devel From tommarnk at gmail.com Thu Apr 8 16:57:53 2010 From: tommarnk at gmail.com (Tommy) Date: Thu, 8 Apr 2010 16:57:53 +0200 Subject: [Matroska-devel] Haali Matroska Splitter Future Request Message-ID: drag and drop support in gdsmux please it will make it simple and fast ;) -------------- next part -------------- An HTML attachment was scrubbed... URL: From slhomme at matroska.org Fri Apr 9 10:09:19 2010 From: slhomme at matroska.org (Steve Lhomme) Date: Fri, 9 Apr 2010 10:09:19 +0200 Subject: [Matroska-devel] HTML5 In-Reply-To: <1500d545-a055-4885-9025-9ad75608bd12@chaocracy.net> References: <1500d545-a055-4885-9025-9ad75608bd12@chaocracy.net> Message-ID: I think the DivX Web Plugin is not using the DirectShow filter directly. But I can't tell for sure. On Fri, Apr 9, 2010 at 12:05 AM, Kristopher Gilbert wrote: > I couldn't even get the DivX MKV splitter to work properly. It just crashed > WMP as soon as it ran. Ironically, it worked in Media Center but > FastForward/Rewind didn't work properly like they did in the beta/dev > releases. > > -----Original Message----- > From: matroska-devel-bounces at lists.matroska.org [mailto: > matroska-devel-bounces at lists.matroska.org] On Behalf Of Kurtnoise > Sent: Thursday, April 08, 2010 2:15 PM > To: matroska-devel at lists.matroska.org > Subject: Re: [Matroska-devel] HTML5 > > Hi Steve, > > Steve Lhomme a ?crit : > > Streaming from what point of view ? The player or the server ? > > > > On the server side it's easy, it should present the stream as a file, > > where you can (optionally) seek. It's standard HTTP streaming. > > > > On the player side you may need to avoid "forward" seeking. It's > > possible in HTTP but is not optimal in terms of connection speed. So > > whatever element that requires you to seek to far in the file should be > > avoid. Normally the Segment Info and Track Info headers are at the > > beggining of the file and that's all you need for playback. If you want > > to handle seeking, you may load the Cue list. But it's likely that you > > have to seek forward in the file to do that. So I would advise to only > > load it when you need it (ie when the user actually wants to seek). > > > Did you try already the DivX Plus HD solution [1] to stream mkv files ? > If yes, may I ask you to have your comments on this...;-) > > > > Best Regards, > Kurtnoise > > > [1] http://developer.divx.com/docs/DivX_Web_Player > > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: > http://dir.gmane.org/gmane.comp.multimedia.matroska.devel > > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: > http://dir.gmane.org/gmane.comp.multimedia.matroska.devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From vvrobinham at 163.com Sat Apr 17 01:00:19 2010 From: vvrobinham at 163.com (vvrobinham) Date: Sat, 17 Apr 2010 07:00:19 +0800 (CST) Subject: [Matroska-devel] Qs : about using Haali Video Renderer in DirectShow Program-Filter interfaces Message-ID: <79772377.304.12808d9edb2.Coremail.vvrobinham@163.com> Hello matroska developers! I want to use Haali video renderer in my customized player, which is using directshow architecture. espessially, which will support different capture card, for eg. HD-SDI capture. but, could you give me some info about program interface about filter: Haali Video renderer. I want to set it work in windowless mode and set it's size and position by program code. thanks and bgs. vvrobinham. 2010-4-17 -------------- next part -------------- An HTML attachment was scrubbed... URL: From pkoshevoy at sorensonmedia.com Tue Apr 20 16:46:40 2010 From: pkoshevoy at sorensonmedia.com (Pavel Koshevoy) Date: Tue, 20 Apr 2010 08:46:40 -0600 Subject: [Matroska-devel] CRC-32 Message-ID: <4BCDBE50.1000403@sorensonmedia.com> Hi, I am working on an EBML/Matroska SDK, and I am at the stage where I need to add CRC-32 element support, both for reading and writing. I am quiet confused on the spec for CRC-32 use in Matroska/EBML. Quoting from various specs on the subject: 1. http://ebml.sourceforge.net/specs/ CRC-32 1+ [BF] The CRC is computed on all the data from the last CRC element (or start of the upper level element), up to the CRC element, including other previous CRC elements. All level 1 elements should include a CRC-32. 2. http://www.matroska.org/technical/specs/rfc/index.html The CRC32 container can be placed around any EBML element or elements. The value stored in CRC32Value is the result of the CRC-32 [CRC32] checksum performed on the other child elements. CRC32 := c3 container [ level:1..; card:*; ] { %children; CRC32Value := 42fe binary [ size:4; ] } 3. http://www.matroska.org/technical/specs/index.html CRC-32 1+ [BF] The CRC is computed on all the data of the Master element it's in, regardless of its position. It's recommended to put the CRC value at the beggining of the Master element for easier reading. All level 1 elements should include a CRC-32. Which of these specifications is the correct one? Is there a small sample matroska file with CRC-32 elements (preferably at segment, cluster, and SimpleBlock/BlockGroup levels) that I could take a look at? Is there a tool that produces matroska files with nested CRC-32 elements? Thank you, Pavel. From slhomme at matroska.org Tue Apr 20 17:21:49 2010 From: slhomme at matroska.org (Steve Lhomme) Date: Tue, 20 Apr 2010 17:21:49 +0200 Subject: [Matroska-devel] CRC-32 In-Reply-To: <4BCDBE50.1000403@sorensonmedia.com> References: <4BCDBE50.1000403@sorensonmedia.com> Message-ID: Hello Pavel, The correct way is #2 and #3. I thought mkvmerge could produce files with CRC but I don't see a switch for that, nor code that is using it. libebml can use it. You could compile your own and change bChecksumUsedByDefault from false to true and use mkvmerge on top. It will produce CRC for all Master elements in the file (so that would be a lot). Steve Lhomme On Tue, Apr 20, 2010 at 4:46 PM, Pavel Koshevoy wrote: > Hi, > > I am working on an EBML/Matroska SDK, and I am at the > stage where I need to add CRC-32 element support, both > for reading and writing. > > I am quiet confused on the spec for CRC-32 use in > Matroska/EBML. Quoting from various specs on the subject: > > 1. http://ebml.sourceforge.net/specs/ > CRC-32 1+ [BF] > > The CRC is computed on all the data from the last > CRC element (or start of the upper level element), > up to the CRC element, including other previous > CRC elements. All level 1 elements should > include a CRC-32. > > 2. http://www.matroska.org/technical/specs/rfc/index.html > > The CRC32 container can be placed around any > EBML element or elements. The value stored in > CRC32Value is the result of the CRC-32 [CRC32] > checksum performed on the other child elements. > > CRC32 := c3 container [ level:1..; card:*; ] { > %children; > CRC32Value := 42fe binary [ size:4; ] > } > > 3. http://www.matroska.org/technical/specs/index.html > > CRC-32 1+ [BF] > > The CRC is computed on all the data of the > Master element it's in, regardless of its position. > It's recommended to put the CRC value at the > beggining of the Master element for easier reading. > All level 1 elements should include a CRC-32. > > > Which of these specifications is the correct one? > Is there a small sample matroska file with CRC-32 > elements (preferably at segment, cluster, and > SimpleBlock/BlockGroup levels) that I could take > a look at? Is there a tool that produces > matroska files with nested CRC-32 elements? > > Thank you, > Pavel. > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: > http://dir.gmane.org/gmane.comp.multimedia.matroska.devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pkoshevoy at sorensonmedia.com Tue Apr 20 17:27:36 2010 From: pkoshevoy at sorensonmedia.com (Pavel Koshevoy) Date: Tue, 20 Apr 2010 09:27:36 -0600 Subject: [Matroska-devel] CRC-32 In-Reply-To: References: <4BCDBE50.1000403@sorensonmedia.com> Message-ID: <4BCDC7E8.8030408@sorensonmedia.com> Hi Steve, Are you sure #2 and #3 are right? #2 uses a different EBML ID for the CRC-32 element, and it has an EBML ID for the CRC-32 value. Perhaps you meant to say #1 and #3 are correct? It's confusing because each description is worded differently, and ambiguously. Thanks for the mkvmerge suggestion, I'll try it once I get a chance (and all required libs to build mkvmerge). Thank you, Pavel. On 4/20/2010 9:21 AM, Steve Lhomme wrote: > Hello Pavel, > > The correct way is #2 and #3. I thought mkvmerge could produce files > with CRC but I don't see a switch for that, nor code that is using it. > libebml can use it. You could compile your own and > change bChecksumUsedByDefault from false to true and use mkvmerge on > top. It will produce CRC for all Master elements in the file (so that > would be a lot). > > Steve Lhomme > > On Tue, Apr 20, 2010 at 4:46 PM, Pavel Koshevoy > > wrote: > > Hi, > > I am working on an EBML/Matroska SDK, and I am at the > stage where I need to add CRC-32 element support, both > for reading and writing. > > I am quiet confused on the spec for CRC-32 use in > Matroska/EBML. Quoting from various specs on the subject: > > 1. http://ebml.sourceforge.net/specs/ > CRC-32 1+ [BF] > > The CRC is computed on all the data from the last > CRC element (or start of the upper level element), > up to the CRC element, including other previous > CRC elements. All level 1 elements should > include a CRC-32. > > 2. http://www.matroska.org/technical/specs/rfc/index.html > > The CRC32 container can be placed around any > EBML element or elements. The value stored in > CRC32Value is the result of the CRC-32 [CRC32] > checksum performed on the other child elements. > > CRC32 := c3 container [ level:1..; card:*; ] { > %children; > CRC32Value := 42fe binary [ size:4; ] > } > > 3. http://www.matroska.org/technical/specs/index.html > > CRC-32 1+ [BF] > > The CRC is computed on all the data of the > Master element it's in, regardless of its position. > It's recommended to put the CRC value at the > beggining of the Master element for easier reading. > All level 1 elements should include a CRC-32. > > > Which of these specifications is the correct one? > Is there a small sample matroska file with CRC-32 > elements (preferably at segment, cluster, and > SimpleBlock/BlockGroup levels) that I could take > a look at? Is there a tool that produces > matroska files with nested CRC-32 elements? > > Thank you, > Pavel. > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: > http://dir.gmane.org/gmane.comp.multimedia.matroska.devel > > > > > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: http://dir.gmane.org/gmane.comp.multimedia.matroska.devel From slhomme at matroska.org Tue Apr 20 17:34:01 2010 From: slhomme at matroska.org (Steve Lhomme) Date: Tue, 20 Apr 2010 17:34:01 +0200 Subject: [Matroska-devel] CRC-32 In-Reply-To: <4BCDC7E8.8030408@sorensonmedia.com> References: <4BCDBE50.1000403@sorensonmedia.com> <4BCDC7E8.8030408@sorensonmedia.com> Message-ID: OK let me try to define it here then: The correct EBML ID is [BF]. The value represents all the data inside the EBML Master it's contained in (except the CRC32 element itself, of course). And it should be placed as the first element in a Master (so it applies to all the following elements at that level). On Tue, Apr 20, 2010 at 5:27 PM, Pavel Koshevoy wrote: > Hi Steve, > > Are you sure #2 and #3 are right? #2 uses a different EBML ID for the > CRC-32 element, and it has an EBML ID for the CRC-32 value. Perhaps you > meant to say #1 and #3 are correct? It's confusing because each > description is worded differently, and ambiguously. Thanks for the > mkvmerge suggestion, I'll try it once I get a chance (and all required > libs to build mkvmerge). > > Thank you, > Pavel. > > > On 4/20/2010 9:21 AM, Steve Lhomme wrote: > > Hello Pavel, > > > > The correct way is #2 and #3. I thought mkvmerge could produce files > > with CRC but I don't see a switch for that, nor code that is using it. > > libebml can use it. You could compile your own and > > change bChecksumUsedByDefault from false to true and use mkvmerge on > > top. It will produce CRC for all Master elements in the file (so that > > would be a lot). > > > > Steve Lhomme > > > > On Tue, Apr 20, 2010 at 4:46 PM, Pavel Koshevoy > > > > wrote: > > > > Hi, > > > > I am working on an EBML/Matroska SDK, and I am at the > > stage where I need to add CRC-32 element support, both > > for reading and writing. > > > > I am quiet confused on the spec for CRC-32 use in > > Matroska/EBML. Quoting from various specs on the subject: > > > > 1. http://ebml.sourceforge.net/specs/ > > CRC-32 1+ [BF] > > > > The CRC is computed on all the data from the last > > CRC element (or start of the upper level element), > > up to the CRC element, including other previous > > CRC elements. All level 1 elements should > > include a CRC-32. > > > > 2. http://www.matroska.org/technical/specs/rfc/index.html > > > > The CRC32 container can be placed around any > > EBML element or elements. The value stored in > > CRC32Value is the result of the CRC-32 [CRC32] > > checksum performed on the other child elements. > > > > CRC32 := c3 container [ level:1..; card:*; ] { > > %children; > > CRC32Value := 42fe binary [ size:4; ] > > } > > > > 3. http://www.matroska.org/technical/specs/index.html > > > > CRC-32 1+ [BF] > > > > The CRC is computed on all the data of the > > Master element it's in, regardless of its position. > > It's recommended to put the CRC value at the > > beggining of the Master element for easier reading. > > All level 1 elements should include a CRC-32. > > > > > > Which of these specifications is the correct one? > > Is there a small sample matroska file with CRC-32 > > elements (preferably at segment, cluster, and > > SimpleBlock/BlockGroup levels) that I could take > > a look at? Is there a tool that produces > > matroska files with nested CRC-32 elements? > > > > Thank you, > > Pavel. > > _______________________________________________ > > Matroska-devel mailing list > > Matroska-devel at lists.matroska.org > > > > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > > Read Matroska-Devel on GMane: > > http://dir.gmane.org/gmane.comp.multimedia.matroska.devel > > > > > > > > > > _______________________________________________ > > Matroska-devel mailing list > > Matroska-devel at lists.matroska.org > > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > > Read Matroska-Devel on GMane: > http://dir.gmane.org/gmane.comp.multimedia.matroska.devel > > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: > http://dir.gmane.org/gmane.comp.multimedia.matroska.devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pkoshevoy at sorensonmedia.com Wed Apr 21 00:26:35 2010 From: pkoshevoy at sorensonmedia.com (Pavel Koshevoy) Date: Tue, 20 Apr 2010 16:26:35 -0600 Subject: [Matroska-devel] yet another matroska api Message-ID: <4BCE2A1B.30004@sorensonmedia.com> Hi, I'd like to announce Yet Another Matroska API -- https://sourceforge.net/projects/yamka/ It's not quiet complete yet -- CRC-32 isn't done right, and default payload values are not set for most of the elements. It's cross-platform, written in C++, depends on Boost (headers only, at least right now). It's concise and straight forward to use, something like this (note: I didn't try to compile this example) > // yamka includes: > #include > > // yamka shortcuts: > typedef Yamka::MatroskaDoc::TSegment TSegment; > typedef Yamka::Segment::TInfo TSegInfo; > typedef Yamka::Segment::TTracks TTracks; > typedef Yamka::Segment::TSeekHead TSeekHead; > typedef Yamka::Segment::TCluster TCluster; > typedef Yamka::Segment::TCues TCues; > typedef Yamka::Cues::TCuePoint TCuePoint; > typedef Yamka::Tracks::TTrack TTrackEntry; > > using Yamka::File; > using Yamka::FileStorage; > using Yamka::uint64; > using Yamka::MatroskaDoc; > using Yamka::SimpleBlock > using Yamka::Cluster; > > void blah() > { > // load matroska document from "testYamka.mkv" > FileStorage mkvSrc(std::string("testYamka.mkv"), File::kReadOnly); > uint64 mkvSrcSize = mkvSrc.file_.size(); > > MatroskaDoc matroska; > uint64 bytesRead = matroska.load(mkvSrc, mkvSrcSize); > > // in the first cluster only -- dump SimpleBlock payload attributes > // (trackNo, lacing, frame sizes, etc...) to stdout: > typedef std::deque::const_iterator TSimpleBlockIter; > for (TSimpleBlockIter i = matroska. > segments_.front().payload_. > clusters_.front().payload_. > simpleBlocks_.begin(); > i != matroska. > segments_.front().payload_. > clusters_.front().payload_. > simpleBlocks_.end(); > ++i) > { > const Cluster::TSimpleBlock & elt = *i; > > Bytes importData; > if (elt.payload_.get(importData)) > { > SimpleBlock sb; > if (sb.importData(importData)) > { > std::cout << sb << std::endl; > } > } > } > > // modify the document: > TSegment & segment = matroska.segments_.back(); > TSegInfo & segInfo = segment.payload_.info_; > segInfo.payload_.writingApp_.payload_. > set("Sorenson Media Matroska formatter SCAPI plugin"); > > // save matroska document to "testYamkaOut.mkv" > FileStorage mkvSrcOut(std::string("testYamkaOut.mkv"), File::kReadWrite); > FileStorage::IReceiptPtr receipt = matroska.save(mkvSrcOut); > > std::cout << "bytes saved: " << receipt->numBytes() << std::endl; > } Hope this is useful to someone besides me. Pavel. From slhomme at matroska.org Wed Apr 21 09:23:47 2010 From: slhomme at matroska.org (Steve Lhomme) Date: Wed, 21 Apr 2010 09:23:47 +0200 Subject: [Matroska-devel] yet another matroska api In-Reply-To: <4BCE2A1B.30004@sorensonmedia.com> References: <4BCE2A1B.30004@sorensonmedia.com> Message-ID: Hi Pavel, I will add that to the list of possible libraries on the website soon. Thanks for the info and good job :) Steve On Wed, Apr 21, 2010 at 12:26 AM, Pavel Koshevoy < pkoshevoy at sorensonmedia.com> wrote: > Hi, > > I'd like to announce Yet Another Matroska API -- > https://sourceforge.net/projects/yamka/ > > It's not quiet complete yet -- CRC-32 isn't done right, and default > payload values are not set for most of the elements. > > It's cross-platform, written in C++, depends on Boost (headers only, at > least right now). It's concise and straight forward to use, something > like this (note: I didn't try to compile this example) > > > > // yamka includes: > > #include > > > > // yamka shortcuts: > > typedef Yamka::MatroskaDoc::TSegment TSegment; > > typedef Yamka::Segment::TInfo TSegInfo; > > typedef Yamka::Segment::TTracks TTracks; > > typedef Yamka::Segment::TSeekHead TSeekHead; > > typedef Yamka::Segment::TCluster TCluster; > > typedef Yamka::Segment::TCues TCues; > > typedef Yamka::Cues::TCuePoint TCuePoint; > > typedef Yamka::Tracks::TTrack TTrackEntry; > > > > using Yamka::File; > > using Yamka::FileStorage; > > using Yamka::uint64; > > using Yamka::MatroskaDoc; > > using Yamka::SimpleBlock > > using Yamka::Cluster; > > > > void blah() > > { > > // load matroska document from "testYamka.mkv" > > FileStorage mkvSrc(std::string("testYamka.mkv"), File::kReadOnly); > > uint64 mkvSrcSize = mkvSrc.file_.size(); > > > > MatroskaDoc matroska; > > uint64 bytesRead = matroska.load(mkvSrc, mkvSrcSize); > > > > // in the first cluster only -- dump SimpleBlock payload attributes > > // (trackNo, lacing, frame sizes, etc...) to stdout: > > typedef std::deque::const_iterator > TSimpleBlockIter; > > for (TSimpleBlockIter i = matroska. > > segments_.front().payload_. > > clusters_.front().payload_. > > simpleBlocks_.begin(); > > i != matroska. > > segments_.front().payload_. > > clusters_.front().payload_. > > simpleBlocks_.end(); > > ++i) > > { > > const Cluster::TSimpleBlock & elt = *i; > > > > Bytes importData; > > if (elt.payload_.get(importData)) > > { > > SimpleBlock sb; > > if (sb.importData(importData)) > > { > > std::cout << sb << std::endl; > > } > > } > > } > > > > // modify the document: > > TSegment & segment = matroska.segments_.back(); > > TSegInfo & segInfo = segment.payload_.info_; > > segInfo.payload_.writingApp_.payload_. > > set("Sorenson Media Matroska formatter SCAPI plugin"); > > > > // save matroska document to "testYamkaOut.mkv" > > FileStorage mkvSrcOut(std::string("testYamkaOut.mkv"), > File::kReadWrite); > > FileStorage::IReceiptPtr receipt = matroska.save(mkvSrcOut); > > > > std::cout << "bytes saved: " << receipt->numBytes() << std::endl; > > } > > > > Hope this is useful to someone besides me. > Pavel. > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: > http://dir.gmane.org/gmane.comp.multimedia.matroska.devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chris at matroska.org Wed Apr 21 10:03:40 2010 From: chris at matroska.org (Christian Wiesner) Date: Wed, 21 Apr 2010 10:03:40 +0200 Subject: [Matroska-devel] yet another matroska api In-Reply-To: <4BCE2A1B.30004@sorensonmedia.com> References: <4BCE2A1B.30004@sorensonmedia.com> Message-ID: Hi Pavel, good job, thank you for that ! One question: What license type is your library ? BSD ? Christian 2010/4/21 Pavel Koshevoy > Hi, > > I'd like to announce Yet Another Matroska API -- > https://sourceforge.net/projects/yamka/ > > It's not quiet complete yet -- CRC-32 isn't done right, and default > payload values are not set for most of the elements. > > It's cross-platform, written in C++, depends on Boost (headers only, at > least right now). It's concise and straight forward to use, something > like this (note: I didn't try to compile this example) > > > > // yamka includes: > > #include > > > > // yamka shortcuts: > > typedef Yamka::MatroskaDoc::TSegment TSegment; > > typedef Yamka::Segment::TInfo TSegInfo; > > typedef Yamka::Segment::TTracks TTracks; > > typedef Yamka::Segment::TSeekHead TSeekHead; > > typedef Yamka::Segment::TCluster TCluster; > > typedef Yamka::Segment::TCues TCues; > > typedef Yamka::Cues::TCuePoint TCuePoint; > > typedef Yamka::Tracks::TTrack TTrackEntry; > > > > using Yamka::File; > > using Yamka::FileStorage; > > using Yamka::uint64; > > using Yamka::MatroskaDoc; > > using Yamka::SimpleBlock > > using Yamka::Cluster; > > > > void blah() > > { > > // load matroska document from "testYamka.mkv" > > FileStorage mkvSrc(std::string("testYamka.mkv"), File::kReadOnly); > > uint64 mkvSrcSize = mkvSrc.file_.size(); > > > > MatroskaDoc matroska; > > uint64 bytesRead = matroska.load(mkvSrc, mkvSrcSize); > > > > // in the first cluster only -- dump SimpleBlock payload attributes > > // (trackNo, lacing, frame sizes, etc...) to stdout: > > typedef std::deque::const_iterator > TSimpleBlockIter; > > for (TSimpleBlockIter i = matroska. > > segments_.front().payload_. > > clusters_.front().payload_. > > simpleBlocks_.begin(); > > i != matroska. > > segments_.front().payload_. > > clusters_.front().payload_. > > simpleBlocks_.end(); > > ++i) > > { > > const Cluster::TSimpleBlock & elt = *i; > > > > Bytes importData; > > if (elt.payload_.get(importData)) > > { > > SimpleBlock sb; > > if (sb.importData(importData)) > > { > > std::cout << sb << std::endl; > > } > > } > > } > > > > // modify the document: > > TSegment & segment = matroska.segments_.back(); > > TSegInfo & segInfo = segment.payload_.info_; > > segInfo.payload_.writingApp_.payload_. > > set("Sorenson Media Matroska formatter SCAPI plugin"); > > > > // save matroska document to "testYamkaOut.mkv" > > FileStorage mkvSrcOut(std::string("testYamkaOut.mkv"), > File::kReadWrite); > > FileStorage::IReceiptPtr receipt = matroska.save(mkvSrcOut); > > > > std::cout << "bytes saved: " << receipt->numBytes() << std::endl; > > } > > > > Hope this is useful to someone besides me. > Pavel. > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: > http://dir.gmane.org/gmane.comp.multimedia.matroska.devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From slhomme at matroska.org Tue Apr 27 10:00:36 2010 From: slhomme at matroska.org (Steve Lhomme) Date: Tue, 27 Apr 2010 10:00:36 +0200 Subject: [Matroska-devel] yet another matroska api In-Reply-To: References: <4BCE2A1B.30004@sorensonmedia.com> Message-ID: I added a link to your SourceForge page in our Downloads links. Should it be mentioned that it's supported by Sorenson Media ? On 4/21/10, Christian Wiesner wrote: > Hi Pavel, > > good job, thank you for that ! One question: What license type is your > library ? BSD ? > > Christian > > 2010/4/21 Pavel Koshevoy > >> Hi, >> >> I'd like to announce Yet Another Matroska API -- >> https://sourceforge.net/projects/yamka/ >> >> It's not quiet complete yet -- CRC-32 isn't done right, and default >> payload values are not set for most of the elements. >> >> It's cross-platform, written in C++, depends on Boost (headers only, at >> least right now). It's concise and straight forward to use, something >> like this (note: I didn't try to compile this example) >> >> >> > // yamka includes: >> > #include >> > >> > // yamka shortcuts: >> > typedef Yamka::MatroskaDoc::TSegment TSegment; >> > typedef Yamka::Segment::TInfo TSegInfo; >> > typedef Yamka::Segment::TTracks TTracks; >> > typedef Yamka::Segment::TSeekHead TSeekHead; >> > typedef Yamka::Segment::TCluster TCluster; >> > typedef Yamka::Segment::TCues TCues; >> > typedef Yamka::Cues::TCuePoint TCuePoint; >> > typedef Yamka::Tracks::TTrack TTrackEntry; >> > >> > using Yamka::File; >> > using Yamka::FileStorage; >> > using Yamka::uint64; >> > using Yamka::MatroskaDoc; >> > using Yamka::SimpleBlock >> > using Yamka::Cluster; >> > >> > void blah() >> > { >> > // load matroska document from "testYamka.mkv" >> > FileStorage mkvSrc(std::string("testYamka.mkv"), File::kReadOnly); >> > uint64 mkvSrcSize = mkvSrc.file_.size(); >> > >> > MatroskaDoc matroska; >> > uint64 bytesRead = matroska.load(mkvSrc, mkvSrcSize); >> > >> > // in the first cluster only -- dump SimpleBlock payload attributes >> > // (trackNo, lacing, frame sizes, etc...) to stdout: >> > typedef std::deque::const_iterator >> TSimpleBlockIter; >> > for (TSimpleBlockIter i = matroska. >> > segments_.front().payload_. >> > clusters_.front().payload_. >> > simpleBlocks_.begin(); >> > i != matroska. >> > segments_.front().payload_. >> > clusters_.front().payload_. >> > simpleBlocks_.end(); >> > ++i) >> > { >> > const Cluster::TSimpleBlock & elt = *i; >> > >> > Bytes importData; >> > if (elt.payload_.get(importData)) >> > { >> > SimpleBlock sb; >> > if (sb.importData(importData)) >> > { >> > std::cout << sb << std::endl; >> > } >> > } >> > } >> > >> > // modify the document: >> > TSegment & segment = matroska.segments_.back(); >> > TSegInfo & segInfo = segment.payload_.info_; >> > segInfo.payload_.writingApp_.payload_. >> > set("Sorenson Media Matroska formatter SCAPI plugin"); >> > >> > // save matroska document to "testYamkaOut.mkv" >> > FileStorage mkvSrcOut(std::string("testYamkaOut.mkv"), >> File::kReadWrite); >> > FileStorage::IReceiptPtr receipt = matroska.save(mkvSrcOut); >> > >> > std::cout << "bytes saved: " << receipt->numBytes() << std::endl; >> > } >> >> >> >> Hope this is useful to someone besides me. >> Pavel. >> _______________________________________________ >> Matroska-devel mailing list >> Matroska-devel at lists.matroska.org >> http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel >> Read Matroska-Devel on GMane: >> http://dir.gmane.org/gmane.comp.multimedia.matroska.devel >> > From pkoshevoy at sorensonmedia.com Tue Apr 27 17:40:13 2010 From: pkoshevoy at sorensonmedia.com (Pavel Koshevoy) Date: Tue, 27 Apr 2010 09:40:13 -0600 Subject: [Matroska-devel] yet another matroska api In-Reply-To: References: <4BCE2A1B.30004@sorensonmedia.com> Message-ID: <4BD7055D.3020302@sorensonmedia.com> On 4/27/10 2:00 AM, Steve Lhomme wrote: > I added a link to your SourceForge page in our Downloads links. Should > it be mentioned that it's supported by Sorenson Media ? > > Thank you. I am a Sorenson Media employee, so I guess it is supported by Sorenson Media as long as I work there :) Pavel. From slhomme at matroska.org Tue Apr 27 20:40:45 2010 From: slhomme at matroska.org (Steve Lhomme) Date: Tue, 27 Apr 2010 20:40:45 +0200 Subject: [Matroska-devel] yet another matroska api In-Reply-To: <4BD7055D.3020302@sorensonmedia.com> References: <4BCE2A1B.30004@sorensonmedia.com> <4BD7055D.3020302@sorensonmedia.com> Message-ID: OK. But do you do it "on behalf" on Soreson or for yourself (and just use your SM email address) ? On 4/27/10, Pavel Koshevoy wrote: > On 4/27/10 2:00 AM, Steve Lhomme wrote: >> I added a link to your SourceForge page in our Downloads links. Should >> it be mentioned that it's supported by Sorenson Media ? >> >> > > Thank you. I am a Sorenson Media employee, so I guess it is supported > by Sorenson Media as long as I work there :) > > Pavel. > > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: > http://dir.gmane.org/gmane.comp.multimedia.matroska.devel > From pkoshevoy at sorensonmedia.com Tue Apr 27 21:13:57 2010 From: pkoshevoy at sorensonmedia.com (Pavel Koshevoy) Date: Tue, 27 Apr 2010 13:13:57 -0600 Subject: [Matroska-devel] yet another matroska api In-Reply-To: References: <4BCE2A1B.30004@sorensonmedia.com> <4BD7055D.3020302@sorensonmedia.com> Message-ID: <4BD73775.1040501@sorensonmedia.com> They didn't ask me to do this. I did it on my own (not their behalf) to make my life easier for doing the things they did ask me to do. Pavel. On 4/27/10 12:40 PM, Steve Lhomme wrote: > OK. But do you do it "on behalf" on Soreson or for yourself (and just > use your SM email address) ? > > On 4/27/10, Pavel Koshevoy wrote: >> On 4/27/10 2:00 AM, Steve Lhomme wrote: >>> I added a link to your SourceForge page in our Downloads links. Should >>> it be mentioned that it's supported by Sorenson Media ? >>> >>> >> >> Thank you. I am a Sorenson Media employee, so I guess it is supported >> by Sorenson Media as long as I work there :) >> >> Pavel. >> >> _______________________________________________ >> Matroska-devel mailing list >> Matroska-devel at lists.matroska.org >> http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel >> Read Matroska-Devel on GMane: >> http://dir.gmane.org/gmane.comp.multimedia.matroska.devel >> > _______________________________________________ > Matroska-devel mailing list > Matroska-devel at lists.matroska.org > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: http://dir.gmane.org/gmane.comp.multimedia.matroska.devel