Hey everyone, I've added Opus support to my WebM plug-in for Premiere. I'm sure I'm doing some things wrong, not that there is an official way to do them right anyway! I'd love it if some knowledgeable people would take a look:
http://github.com/fnordware/AdobeWebM
Apparently the closest thing to a standards document is here:
http://wiki.xiph.org/MatroskaOpus
There are quite a few things here I can't yet do in libwebm (or can I?) like these SeekPreRoll, CodecDelay, and DiscardPadding fields.
Nor am I doing anything with CuePoints, which I kind of feel libwebm should handle for me transparently.
On Jan 10, 2014, at 4:17 PM, Tom Finegan wrote:All right, great! I'll pull in your new changes and start using them.
> Thanks for bringing this up!
>
> Libwebm HEAD now supports reading/writing:
> - Opus/VP9
> - SeekPreRoll
> - CodecDelay
>
> Reading of DiscardPadding via the parser is also working in HEAD, but the muxer side isn't complete (probably early next week unless something urgent comes up).
Well, I know there are these things called CuePoints in Matroska and libwebm has some functions for creating them and reading them. I've never actually seen a WebM that uses them, but I guess it's supposed to be good practice to do so?
>
>
> Nor am I doing anything with CuePoints, which I kind of feel libwebm should handle for me transparently.
>
>
> Can you elaborate on this point? I'm not sure what you're asking for, feature wise, from libwebm.
By "transparently" I mean it seems like mkvparser::Track::Seek() should just use CuePoints if they're present. Right now I think it's up to me to use CuePoints properly.
As for writing them, is it as simple as calling mkvmuxer::Segment::AddCuePoint() after I add a frame? Even then, I'd think AddFrame() would just do it for me.
Still wondering what the advantage is over just using Track::Seek(). Seems like either way you end up with the Cluster containing the time you asked for, but Track::Seek() does it without any of this CuePoint stuff. If CuePoints are a more efficient way of seeking, it seems like Track::Seek() would use them itself.
--
You received this message because you are subscribed to the Google Groups "Application Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apps-devel+...@webmproject.org.
To post to this group, send email to apps-...@webmproject.org.
Visit this group at http://groups.google.com/a/webmproject.org/group/apps-devel/.
For more options, visit https://groups.google.com/a/webmproject.org/groups/opt_out.
Brendan
On Jan 23, 2014, at 3:47 PM, Tom Finegan wrote:Thanks, Tom. I've pulled in your latest.
> Another update on Opus:
> - Libwebm DiscardPadding support on the muxer side just landed.
>
> And, re cue points:
> - Parser sample now demonstrates basic cue point walking.
>
> The latter is not entirely relevant; the seeking aspect that brought them into this conversation in the first place is not part of the update, but the lack of any attention whatsoever re cue points in the parser sample was bothering me.
Any reason why AddFrameWithDiscardPadding() can't take discard_padding=0 and behave the same as AddFrame() in that case?
Thanks also for adding some cue point code in the sample. In WebM, does every keyframe have a cue point?
And does every keyframe start a new cluster?