From steve.lhomme at free.fr Mon Jul 10 16:29:27 2006 From: steve.lhomme at free.fr (Steve Lhomme) Date: Mon, 10 Jul 2006 16:29:27 +0200 Subject: [Matroska-devel] Re: EncryptedBlock format In-Reply-To: References: <44A14CA2.6090605@free.fr> <44A42156.7050501@free.fr> <44AA145D.3040000@free.fr> Message-ID: <44B26447.6070409@free.fr> Joseph Ashwood wrote: >> Let's just put this in the ODRL management, since that's where rights >> are managed, not at the container level. So the container design >> shouldn't influence for one right or the other. > > That'll work. The I'd suggest we go with the Matroska exclusive version, > leaving the header information outside the MAC. OK, I'll do that. >>>> I don't understand what the TransformHandler is for: encryption ? >>>> What's >>>> the difference with the EncryptedBlock above ? >>> >>> The TransformHeader/TransformInitializer is to assign the UID for the >>> transform within the file, and to provide initialization data for the >>> transform, this provides a place to put some potentially very large >>> information (20KB may not be unusual for some of the initializers, >>> and 1MB is conceivable). The only output of this will probably be an >>> error/success code. This header is the Blob_0 we've discussed before. >> >> So what about TransformHandler ? Or you mean TransformHeader ? > > Ok I think I've at some point switched terminology, so just to begin > from the basic concepts > TransformHandler is an implementation of the specified transform > TransformInitializer/TranformHeader is the initialization information > given to TranformHandler prior to attempting to decode any of the > EncryptedBlocks, this also supplies the demuxer with the UID for the > TransformHandler within the file > EncryptedBlock is an encrypted (Simple)Block with a UID for the > TransformHandler. OK. I get it now. >>> An EBML version should have some extra capabilities that haven't been >>> discussed here, like; the ability to explode into several elements >>> instead of just one, external referencing, etc. basically if you look >>> at XML-ENC and XML-SIG that's what a generic EBML encryptor should >>> do, it's actually quite a bit more complex. What we've done so far is >>> really very targetted at what is needed for DRMing files, that's a >>> big part of why I'm favoring it as a Matroska instead of an EBML. >> >> Well, the EBML based solution we have in mind would just be the same >> as the matroska one. The Transforms init in the EBML header, a >> Transform element that contains the element(s) to be un-Transformed. >> That's more generic, and still used the same principles. That means >> you could encrypt chapters, tags, codec information too. > > As long as it is kept inside Matroska, even if it is a strange > hybrid-level structure, I would consider that DRM. I thought the DRM vs > EBML was intended to extend beyond Matroska where it would quickly hit > the limits of it's capabilities. Yes, in EBML it's also to be used for something else. But given this solution can be used for a lot of other formats (encryption only as some levels and ODRL rights that can apply to a lot of things), I think it's a good opportunity to make it generic, as it's not much different. Pumping the EBML version would also make it easier to track DRMed Matroska files and disable playback in other parsers (provided they do check the EBML version)... >> But that also means the ODRL rights should be put in the EBML level >> too. I'm not sure ODRL is generic enough to handle other things than >> multimedia ??? > > It appears to be capable, although it is in large part a matter of > pounding a square peg into a round hole. True. But if it's done well, you only need a small set of fields to define common rights... >>>> There are more people on the list (not necesseraly subscribed, but >>>> lurking >>>> via gmane). >>> >>> Yep, and they all ignored the crypto conversation as well. :) >> >> Damn right :( >> >> Now that matroska is mature and stable, there aren't so many technical >> discussions anymore :( > > That happens a lot in user-level software, "Developer" starts to mean > "Person that knows how it works" instead of "Person with technical > knowledge and abilities to advance the design." I still favor bringing > it onto the main list, if for no other reason than to prepare them for > the introduction. OK, done now :) -- robUx4 on blog From warlavut_ at hotmail.com Wed Jul 12 20:07:51 2006 From: warlavut_ at hotmail.com (warlavut pornwattana) Date: Thu, 13 Jul 2006 01:07:51 +0700 Subject: [Matroska-devel] Hello Message-ID: Hi Freinds, My name Jame. I saw message "We invite every interested developer to join our team and to help us to achieve these goals" in your web. I interesting your project so much. Lets me help u to develope MKV format. I have knowledge about hardware and software and i can use c++,c,cdx,php,vb6,photoshop,premiere pro but "not more expert". if u want me join your team tell me about how to start my work. bkkdesign at hotmail.com Best regards, Jame Villiam. _________________________________________________________________ Don't just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/ From steve.lhomme at free.fr Mon Jul 17 18:44:35 2006 From: steve.lhomme at free.fr (Steve Lhomme) Date: Mon, 17 Jul 2006 18:44:35 +0200 Subject: [Matroska-devel] Hello In-Reply-To: References: Message-ID: <44BBBE73.3040705@free.fr> Hi Jame, You can come on #matroska on irc.codecodec.com we're usually there discussing about various things (even technical sometimes). Steve warlavut pornwattana wrote: > Hi Freinds, > My name Jame. > I saw message "We invite every interested developer to join our team > and to help us to achieve these goals" in your web. > I interesting your project so much. Lets me help u to develope MKV format. > > I have knowledge about hardware and software and > i can use c++,c,cdx,php,vb6,photoshop,premiere pro but "not more expert". > > if u want me join your team tell me about how to start my work. > bkkdesign at hotmail.com > > Best regards, > Jame Villiam. > > _________________________________________________________________ > Don't just search. Find. Check out the new MSN Search! > http://search.msn.click-url.com/go/onm00200636ave/direct/01/ > > _______________________________________________ > 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 -- robUx4 on blog From brbromo at gmail.com Mon Jul 24 12:22:31 2006 From: brbromo at gmail.com (Marco) Date: Mon, 24 Jul 2006 12:22:31 +0200 Subject: [Matroska-devel] Tagging requires remuxing Message-ID: <4891aa620607240322w79126692k99373cdaddad5c7e@mail.gmail.com> In the matroska-user ML, it has been noticed that tagging mkv files requires remuxing them (as for attaching files, too). I suppose that tagging information is stored in headers. Wouldn't it be possible to edit headers on the fly? Is there a technical reason behind this behaviour? Thanks, Marco From obsessivemathsfreak at eircom.net Tue Jul 25 21:40:05 2006 From: obsessivemathsfreak at eircom.net (ObsessiveMathsFreak) Date: Tue, 25 Jul 2006 20:40:05 +0100 Subject: [Matroska-devel] mkvmerge seek issues Message-ID: <44C67395.4070803@eircom.net> Hi, I posted this to the general-mailing list, but got no response. I think this is more of a development issue anyway. I'm attempting to mux an x264 video file encoded with mplayer, using the mkvtoolnix program mkvmerge v1.7.0 on linux. Everything works fine throughout all the steps, up until the video is muxed into an mkv file. Basically, once the movie is muxed, it plays fine, everything is in synch, _but_ the on screen position bar in mplayer is incorrect. No matter where I seek to, fast forward or rewind, the OSD reads out that the movies is at position 0%. I can fast forward, skip ahead, etc, but the OSD position meter in mplayer remains unchanged. At first I thought this was only a problem with mplayer, but when I play the file in VLC media player, a similar problem appears. Again the movie played fine, but VLC displayed no seek bar, and was also unable to fast forward the movie. I can only assume that some kind of time code stamps or the like have been changed or made unreadable somehow by mkvmerge. I encode the video, then mux it into an mp4 file using mp4box. Up to this point there are no problems. I can still seek fine(the OSD position bar appears, and will fill up as I seek further.) It is only once the video is muxed into an mkv file that the seek issue becomes a problem. I've tried multiple encoder settings for this, but nothing seems to work. Does anyone know what might be going wrong? From pierre-henri.lacroix at laposte.net Tue Jul 25 21:29:55 2006 From: pierre-henri.lacroix at laposte.net (Pierre) Date: Tue, 25 Jul 2006 21:29:55 +0200 Subject: [Matroska-devel] troubles with H264 video codec Message-ID: <44C67133.4030807@laposte.net> I don't know if you'll have the answear I'll need but I've a trouble with all the matroska video encoded with the H264 codec so i'd like to know if it's possible to demux a mkv to convert the video in another format and to remux the files in a new mkv or simpler if you are able to create a filter which correct the framerate of the video to synchronize voice and video when we see it thanks a lot -------------- next part -------------- A non-text attachment was scrubbed... Name: pierre-henri.lacroix.vcf Type: text/x-vcard Size: 130 bytes Desc: not available URL: From steve.lhomme at free.fr Wed Jul 26 09:09:48 2006 From: steve.lhomme at free.fr (Steve Lhomme) Date: Wed, 26 Jul 2006 09:09:48 +0200 Subject: [Matroska-devel] Tagging requires remuxing In-Reply-To: <4891aa620607240322w79126692k99373cdaddad5c7e@mail.gmail.com> References: <4891aa620607240322w79126692k99373cdaddad5c7e@mail.gmail.com> Message-ID: <44C7153C.8090307@free.fr> Marco wrote: > In the matroska-user ML, it has been noticed that tagging mkv files > requires remuxing them (as for attaching files, too). Yeah, sorry for the long delay to reply, I've been very busy on all sides (and still is). > I suppose that tagging information is stored in headers. Wouldn't > it be possible to edit headers on the fly? > > Is there a technical reason behind this behaviour? Technically it's possible to edit tags on the fly without having to remux the whole file. Usually tags are padded with void at the end to leave some space for easy editing. Otherwise in some cases a remux is necessary. Unfortunately the only app that allowed that so far is the Shell Extension, but using tags wasn't always safe and it might be using the old tag system (deprecated now for a while). We do have plans for tags coming, but there is nothing out yet. I wish I had time to make a small app or edit the shell extension to match the new tags, but I really lack time for the moment. So please be patient. Steve From steve.lhomme at free.fr Wed Jul 26 09:18:26 2006 From: steve.lhomme at free.fr (Steve Lhomme) Date: Wed, 26 Jul 2006 09:18:26 +0200 Subject: [Matroska-devel] troubles with H264 video codec In-Reply-To: <44C67133.4030807@laposte.net> References: <44C67133.4030807@laposte.net> Message-ID: <44C71742.8090203@free.fr> Pierre wrote: > I don't know if you'll have the answear I'll need but I've a trouble > with all the matroska video encoded with the H264 codec so i'd like to > know if it's possible to demux a mkv to convert the video in another > format and to remux the files in a new mkv or simpler if you are able to > create a filter which correct the framerate of the video to synchronize > voice and video when we see it Hi, if the audio and video are out of sync that means the file was not properly created. You can remux the matroska file and change the video framerate (you can use a simple timecode file v2 or v3 for that) or add a delay to the audio track(s). All the options are available through mkvmerge GUI (MMG). Steve From steve.lhomme at free.fr Wed Jul 26 09:24:53 2006 From: steve.lhomme at free.fr (Steve Lhomme) Date: Wed, 26 Jul 2006 09:24:53 +0200 Subject: [Matroska-devel] mkvmerge seek issues In-Reply-To: <44C67395.4070803@eircom.net> References: <44C67395.4070803@eircom.net> Message-ID: <44C718C5.8080304@free.fr> ObsessiveMathsFreak wrote: > Hi, > > I posted this to the general-mailing list, but got no response. I think > this is more of a development issue anyway. > > I'm attempting to mux an x264 video file encoded with mplayer, using the > mkvtoolnix program mkvmerge v1.7.0 on linux. Everything works fine > throughout all the steps, up until the video is muxed into an mkv file. > > Basically, once the movie is muxed, it plays fine, everything is in > synch, _but_ the on screen position bar in mplayer is incorrect. No > matter where I seek to, fast forward or rewind, the OSD reads out that > the movies is at position 0%. I can fast forward, skip ahead, etc, but > the OSD position meter in mplayer remains unchanged. > > At first I thought this was only a problem with mplayer, but when I play > the file in VLC media player, a similar problem appears. Again the movie > played fine, but VLC displayed no seek bar, and was also unable to fast > forward the movie. > > I can only assume that some kind of time code stamps or the like have > been changed or made unreadable somehow by mkvmerge. > > I encode the video, then mux it into an mp4 file using mp4box. Up to > this point there are no problems. I can still seek fine(the OSD position > bar appears, and will fill up as I seek further.) It is only once the > video is muxed into an mkv file that the seek issue becomes a problem. > > I've tried multiple encoder settings for this, but nothing seems to > work. Does anyone know what might be going wrong? What is the command-line option you use to create the matroska file ? Or do you use MMG ? It's more than strange that the video will play with audio in sync but you have no time bar. I don't even know how that's possible in VLC... Alternatively can you upload a small part of your mux (you can try to mux in 2 parts with a max of 5 MB for each part) somewhere so that we can have a look at the file ? Steve -- robUx4 on blog From titovmaina at yahoo.com Fri Jul 28 14:07:45 2006 From: titovmaina at yahoo.com (titus maina) Date: Fri, 28 Jul 2006 05:07:45 -0700 (PDT) Subject: [Matroska-devel] Concerning mkv and macintosh Message-ID: <20060728120745.71175.qmail@web50609.mail.yahoo.com> Hi, I greatly appreciate your work and the services being rendered to the community. However,could you please develop or encourage mkv players on macintosh. Thanck you. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From nel_987 at yahoo.com Fri Jul 28 14:34:36 2006 From: nel_987 at yahoo.com (Noel Arcayos) Date: Fri, 28 Jul 2006 13:34:36 +0100 (BST) Subject: [Matroska-devel] Can't play the file (error report included) Message-ID: <20060728123436.97566.qmail@web32005.mail.mud.yahoo.com> Hello! I have encountered an error with playing a .mkv file. I can't play it. I have included the error report. Please help me. Thank you very much. ******************************************************************************************* Matroska file info : C:\nsa\Bitcomet\Downloads\[LIME]_Galaxy_Angel_13.mkv File size : 114.21 MB DirectShow RenderFile check : Matroska Splitter : Gabest's Matroska Splitter - Installed : no - Can be created : no Matroska Splitter : Haali's New Matroska Splitter - Installed : yes, in C:\Program Files\Matroska Pack\haali\splitter.ax (1.6.224.23) - Can be created : yes RenderFile with DirectShow : Unspecified error (0x80004005) DirectShow detailed rendering : 0> MyRenderFile : C:\nsa\Bitcomet\Downloads\[LIME]_Galaxy_Angel_13.mkv 0> Creation of GraphBuilder : OK 0> Creation of FilterMapper2 : OK 141> Adding graph to ROT : OK 1157> Creation of source filter : Unspecified error (0x80004005) ******************************************************************************************* And oh, I have sent this report to the 3 email addresses because I don't know where to send the error. Please consider my action. Thank you very much. Send instant messages to your online friends http://uk.messenger.yahoo.com Send instant messages to your online friends http://uk.messenger.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From drpark at wanadoo.fr Sun Jul 30 16:44:32 2006 From: drpark at wanadoo.fr (Drpark) Date: Sun, 30 Jul 2006 16:44:32 +0200 Subject: [Matroska-devel] Halli Coreparser lib and vorbis audio Message-ID: <44CCC5D0.60100@wanadoo.fr> Hello everybody, I'm new to the list, I'm trying as an exercise to retrieve mp3 and vorbis datas from a mkv file, for the mp3 everything is working ok, but for vorbis I don't really know how to get the three vorbis headers sizes easily here is my code, I don't have any problem at compile time, but my graph can't connect, this code is inspired from the matroska directshow filter, this is part of the GetMediaType method BYTE *codecPrivate = (unsigned char*)trackinf->CodecPrivate; VORBISFORMAT2* pvf2 = (VORBISFORMAT2*)m_mt.AllocFormatBuffer(sizeof(VORBISFORMAT2) + tinf->CodecPrivateSize - 3); memcpy((BYTE *)pvf2+sizeof(VORBISFORMAT2),codecPrivate+3, trackinf->CodecPrivateSize-3); unsigned int lastHeaderSize = trackinf->CodecPrivateSize-1; unsigned int nbHeaders = 2;//*((unsigned int *)codecPrivate); codecPrivate++; // 3 headers for vorbis FILE* f; f=fopen("salutaudio.txt","w"); fprintf(f,"salut %i",nbHeaders); fclose(f); while(nbHeaders) { unsigned int currentHeaderSize = 0; do{ currentHeaderSize += *(unsigned int *)codecPrivate; lastHeaderSize--; } while((*codecPrivate++) == 0xFF); lastHeaderSize -= currentHeaderSize; pvf2->HeaderSize[2-nbHeaders] = currentHeaderSize; nbHeaders--; } //pvf2->HeaderSize[0] = trackinf->CodecPrivate; //pvf2->HeaderSize[1] = trackinf->CodecPrivate; //pvf2->HeaderSize[2] = trackinf->CodecPrivateSize-1; pvf2->HeaderSize[2-nbHeaders] = lastHeaderSize; pvf2->Channels = trackinf->AV.Audio.Channels; pvf2->SamplesPerSec = trackinf->AV.Audio.SamplingFreq; pvf2->BitsPerSample = trackinf->AV.Audio.BitDepth; m_mt.SetSampleSize(1); Many thanks for your help From webmaster at attractionland.com Sun Jul 30 13:18:06 2006 From: webmaster at attractionland.com (Attractionland - Jeremy Cardon) Date: Sun, 30 Jul 2006 13:18:06 +0200 Subject: [Matroska-devel] Haali Coreparser and Ogg Vorbis file Message-ID: <44CC956E.1070609@attractionland.com> Hello everybody, I'm new to the list, I'm trying as an exercise to retrieve mp3 and vorbis datas from a mkv file, for the mp3 everything is working ok, but for vorbis I don't really know how to get the three vorbis headers sizes easily here is my code, I don't have any problem at compile time, but my graph can't connect, this code is inspired from the matroska directshow filter, this is part of the GetMediaType method BYTE *codecPrivate = (unsigned char*)trackinf->CodecPrivate; VORBISFORMAT2* pvf2 = (VORBISFORMAT2*)m_mt.AllocFormatBuffer(sizeof(VORBISFORMAT2) + tinf->CodecPrivateSize - 3); memcpy((BYTE *)pvf2+sizeof(VORBISFORMAT2),codecPrivate+3, trackinf->CodecPrivateSize-3); unsigned int lastHeaderSize = trackinf->CodecPrivateSize-1; unsigned int nbHeaders = 2;//*((unsigned int *)codecPrivate); codecPrivate++; // 3 headers for vorbis FILE* f; f=fopen("salutaudio.txt","w"); fprintf(f,"salut %i",nbHeaders); fclose(f); while(nbHeaders) { unsigned int currentHeaderSize = 0; do{ currentHeaderSize += *(unsigned int *)codecPrivate; lastHeaderSize--; } while((*codecPrivate++) == 0xFF); lastHeaderSize -= currentHeaderSize; pvf2->HeaderSize[2-nbHeaders] = currentHeaderSize; nbHeaders--; } //pvf2->HeaderSize[0] = trackinf->CodecPrivate; //pvf2->HeaderSize[1] = trackinf->CodecPrivate; //pvf2->HeaderSize[2] = trackinf->CodecPrivateSize-1; pvf2->HeaderSize[2-nbHeaders] = lastHeaderSize; pvf2->Channels = trackinf->AV.Audio.Channels; pvf2->SamplesPerSec = trackinf->AV.Audio.SamplingFreq; pvf2->BitsPerSample = trackinf->AV.Audio.BitDepth; m_mt.SetSampleSize(1); Many thanks for your help From webmaster at attractionland.com Sun Jul 30 16:43:07 2006 From: webmaster at attractionland.com (Attractionland - Jeremy Cardon) Date: Sun, 30 Jul 2006 16:43:07 +0200 Subject: [Matroska-devel] haali and vorbis Message-ID: <44CCC57B.6050101@attractionland.com> Hello everybody, I'm new to the list, I'm trying as an exercise to retrieve mp3 and vorbis datas from a mkv file, for the mp3 everything is working ok, but for vorbis I don't really know how to get the three vorbis headers sizes easily here is my code, I don't have any problem at compile time, but my graph can't connect, this code is inspired from the matroska directshow filter, this is part of the GetMediaType method BYTE *codecPrivate = (unsigned char*)trackinf->CodecPrivate; VORBISFORMAT2* pvf2 = (VORBISFORMAT2*)m_mt.AllocFormatBuffer(sizeof(VORBISFORMAT2) + tinf->CodecPrivateSize - 3); memcpy((BYTE *)pvf2+sizeof(VORBISFORMAT2),codecPrivate+3, trackinf->CodecPrivateSize-3); unsigned int lastHeaderSize = trackinf->CodecPrivateSize-1; unsigned int nbHeaders = 2;//*((unsigned int *)codecPrivate); codecPrivate++; // 3 headers for vorbis FILE* f; f=fopen("salutaudio.txt","w"); fprintf(f,"salut %i",nbHeaders); fclose(f); while(nbHeaders) { unsigned int currentHeaderSize = 0; do{ currentHeaderSize += *(unsigned int *)codecPrivate; lastHeaderSize--; } while((*codecPrivate++) == 0xFF); lastHeaderSize -= currentHeaderSize; pvf2->HeaderSize[2-nbHeaders] = currentHeaderSize; nbHeaders--; } //pvf2->HeaderSize[0] = trackinf->CodecPrivate; //pvf2->HeaderSize[1] = trackinf->CodecPrivate; //pvf2->HeaderSize[2] = trackinf->CodecPrivateSize-1; pvf2->HeaderSize[2-nbHeaders] = lastHeaderSize; pvf2->Channels = trackinf->AV.Audio.Channels; pvf2->SamplesPerSec = trackinf->AV.Audio.SamplingFreq; pvf2->BitsPerSample = trackinf->AV.Audio.BitDepth; m_mt.SetSampleSize(1); Many thanks for your help From mike at po.cs.msu.su Mon Jul 31 10:13:43 2006 From: mike at po.cs.msu.su (Mike Matsnev) Date: Mon, 31 Jul 2006 12:13:43 +0400 Subject: [Matroska-devel] haali and vorbis In-Reply-To: <44CCC57B.6050101@attractionland.com> References: <44CCC57B.6050101@attractionland.com> Message-ID: <20060731081343.GB64024@azog.po.cs.msu.su> On Sun, Jul 30, 2006 at 04:43:07PM +0200, Attractionland - Jeremy Cardon wrote: > Hello everybody, > I'm new to the list, > > I'm trying as an exercise to retrieve mp3 and vorbis datas from a mkv file, > for the mp3 everything is working ok, but for vorbis > I don't really know how to get the three vorbis headers sizes easily > > here is my code, I don't have any problem at compile time, but my graph > can't connect, > this code is inspired from the matroska directshow filter, > > this is part of the GetMediaType method > > BYTE *codecPrivate = (unsigned char*)trackinf->CodecPrivate; > VORBISFORMAT2* pvf2 = > (VORBISFORMAT2*)m_mt.AllocFormatBuffer(sizeof(VORBISFORMAT2) + > tinf->CodecPrivateSize - 3); > memcpy((BYTE *)pvf2+sizeof(VORBISFORMAT2),codecPrivate+3, > trackinf->CodecPrivateSize-3); This is wrong. You need to skip the encoded length bytes, their number is variable and usually more than 3. > unsigned int lastHeaderSize = trackinf->CodecPrivateSize-1; > unsigned int nbHeaders = 2;//*((unsigned int *)codecPrivate); > codecPrivate++; // 3 headers for vorbis > FILE* f; > f=fopen("salutaudio.txt","w"); > fprintf(f,"salut %i",nbHeaders); > fclose(f); > while(nbHeaders) > { > unsigned int currentHeaderSize = 0; > do{ > currentHeaderSize += *(unsigned int *)codecPrivate; > lastHeaderSize--; > } while((*codecPrivate++) == 0xFF); > lastHeaderSize -= currentHeaderSize; > pvf2->HeaderSize[2-nbHeaders] = currentHeaderSize; > nbHeaders--; > } //pvf2->HeaderSize[0] = > trackinf->CodecPrivate; > //pvf2->HeaderSize[1] = trackinf->CodecPrivate; > //pvf2->HeaderSize[2] = trackinf->CodecPrivateSize-1; > pvf2->HeaderSize[2-nbHeaders] = lastHeaderSize; > pvf2->Channels = trackinf->AV.Audio.Channels; > pvf2->SamplesPerSec = trackinf->AV.Audio.SamplingFreq; > pvf2->BitsPerSample = trackinf->AV.Audio.BitDepth; > m_mt.SetSampleSize(1); > > Many thanks for your help > > _______________________________________________ > 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 drpark at wanadoo.fr Mon Jul 31 19:35:50 2006 From: drpark at wanadoo.fr (Drpark) Date: Mon, 31 Jul 2006 19:35:50 +0200 Subject: [Matroska-devel] haali and vorbis In-Reply-To: <20060731081343.GB64024@azog.po.cs.msu.su> References: <44CCC57B.6050101@attractionland.com> <20060731081343.GB64024@azog.po.cs.msu.su> Message-ID: <44CE3F76.2040209@wanadoo.fr> Thansk for your answer, can you show me the way to skip the encoded lengh byte and retrieve the 3 needed header sizes? Thanks in advance, Mike Matsnev a ?crit : > On Sun, Jul 30, 2006 at 04:43:07PM +0200, Attractionland - Jeremy Cardon wrote: > >> Hello everybody, >> I'm new to the list, >> >> I'm trying as an exercise to retrieve mp3 and vorbis datas from a mkv file, >> for the mp3 everything is working ok, but for vorbis >> I don't really know how to get the three vorbis headers sizes easily >> >> here is my code, I don't have any problem at compile time, but my graph >> can't connect, >> this code is inspired from the matroska directshow filter, >> >> this is part of the GetMediaType method >> >> BYTE *codecPrivate = (unsigned char*)trackinf->CodecPrivate; >> VORBISFORMAT2* pvf2 = >> (VORBISFORMAT2*)m_mt.AllocFormatBuffer(sizeof(VORBISFORMAT2) + >> tinf->CodecPrivateSize - 3); >> memcpy((BYTE *)pvf2+sizeof(VORBISFORMAT2),codecPrivate+3, >> trackinf->CodecPrivateSize-3); >> > This is wrong. You need to skip the encoded length bytes, their number is > variable and usually more than 3. > >> unsigned int lastHeaderSize = trackinf->CodecPrivateSize-1; >> unsigned int nbHeaders = 2;//*((unsigned int *)codecPrivate); >> codecPrivate++; // 3 headers for vorbis >> FILE* f; >> f=fopen("salutaudio.txt","w"); >> fprintf(f,"salut %i",nbHeaders); >> fclose(f); >> while(nbHeaders) >> { >> unsigned int currentHeaderSize = 0; >> do{ >> currentHeaderSize += *(unsigned int *)codecPrivate; >> lastHeaderSize--; >> } while((*codecPrivate++) == 0xFF); >> lastHeaderSize -= currentHeaderSize; >> pvf2->HeaderSize[2-nbHeaders] = currentHeaderSize; >> nbHeaders--; >> } //pvf2->HeaderSize[0] = >> trackinf->CodecPrivate; >> //pvf2->HeaderSize[1] = trackinf->CodecPrivate; >> //pvf2->HeaderSize[2] = trackinf->CodecPrivateSize-1; >> pvf2->HeaderSize[2-nbHeaders] = lastHeaderSize; >> pvf2->Channels = trackinf->AV.Audio.Channels; >> pvf2->SamplesPerSec = trackinf->AV.Audio.SamplingFreq; >> pvf2->BitsPerSample = trackinf->AV.Audio.BitDepth; >> m_mt.SetSampleSize(1); >> >> Many thanks for your help >> >> _______________________________________________ >> 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 > --------------------------------------------------------------------------------------- > Orange vous informe que cet e-mail a ete controle par l'anti-virus mail. > Aucun virus connu a ce jour par nos services n'a ete detecte. > > > > >