So, yeah, I'm Alexi and I work for Power Partner and basically I've been working on multimedia frameworks for quite a while, integrating codecs, performance optimization, power optimization, integrating devices and stuff. So, that's my contact, so there would be, if there are questions which I'm not able to answer, we could talk later. So this is the flow that I'm planning for the whole presentation. So, the initial few sections are more of introduction kind of a thing. I got to spend more time with it, we've been optimizing the hardware, acceleration or the codec integration, that's a bit less. Streaming, that's a bit less. So, how I'd like to do it is, if you have some questions in between, I'm ready to take it up. I have total of 45 minutes. So I can speak for 30 minutes and then take a quiz for 10 minutes. Otherwise, if you want to be having a quiz in between, I'm fine with that. So, yeah, so, multimedia frameworks. So, what it's supposed to be doing is, it's supposed to take care of making sure you have the best experience for your multimedia playback, your camera recording, your 3D playback, 3D recording or stuff like that. But, why is it supposed to be doing is because when Boxy was launched, one of the biggest things they said was, you don't care about what the 3D printer does after the dot is. Basically it's really difficult to do that. There are enough coding formats, there are enough file formats, there are umpteen audio formats, there are different types of latency requirements. So your video conferencing might require very hard latency requirements. So, there are a lot of variations possible. So, how can one single framework take care of that? And, StateStrike tries to do it, but it does a okay job. But, there are lots of ways we can potentially go for improving it. So that's why I said, I'd like to talk about the weeks, the performance improvements we can do inside StateStrike. So, moving ahead, so, StateStrike is the primary multimedia framework that's there now. What was there earlier was, you know, it was open code. And then they moved into StateStrike. But, there's also this talk about an OpenMax AL coming up. So, how many of you are familiar with OpenMax? Yeah, OpenMax is a set of EPS standards from an industry consortium called Kronos. So, AL is something like an equivalent to your player record ideas. So, Google is trying to see if they can have, that's what I've heard. So Google is trying to see if they can have an AL for performance critical applications on Android moving ahead. So, it's still being discussed. But, considering the problems that we have seen with StateStrike, or, like, coming up with very high performance applications, if the person here was talking about, can we do something called voice synthesis? So, for voice synthesis, one of the biggest requirements is, or, like, song synthesis. So, one of the biggest requirements for that is an extremely low-latency audio pipeline. So, which is something like what Paul Sardia does. But, if you add an audio plugin on top of it, and then you add a StateStrike on top of it, that's not the kind of latency you'll get. Or, you go for, say, a 50 millisecond video conferencing end-to-end latency requirement. You can't do it with the kind of framework that StateStrike provides. But, that's where the custom frameworks might come into picture. Or, if OpenMax AL could be a right way to go ahead, depends on how that actually pans out. So, for the feature set, there is support for multiple file formats. It integrates OpenMax codecs. And, also, like, each of the silicon vendors are looking at integrating their codecs into the StateStrike so that they can have accelerated multimedia playback. So, we work a lot with TI. We work a lot with TI and integrating the codecs and optimizing the codecs and stuff. So, OpenMax put a lot of the codecs out from us. So, the OpenMax components are also from us. So, we basically look at accelerating the StateStrike, accelerating the media playback as such, and also recording with the StateStrike component. Next thing is the recording.  There's a whole lot of things which are coming in now. And, there is streaming to it. So, streaming is, luckily, there's full support for RTSP playback. So, the record path is coming in. And, then, you have SDP streaming. So, most of your MP3 songs, your radio stations that you see, it will be either over RTSP or it will be at times over the SDP. So, this is the block diagram that a lot of people have seen. It's huge, it's scary, so we'll keep referring back to this. So, I'd like to talk about some of them, some of the blocks. So, these are the main components that I've been interested in. Like, how I do it is, I'll just give you an overview of the blocks, and then I'll actually come back and say, like, what is it we did for Skype? So, we have a Skype solution. And, I'll talk about how we've been there and customized, so you try to actually achieve that. So, if that's up to you or if you have specific questions, we can take that. So, the data source is, yeah, the source of every flow in the pipe. Even though I refer to it again and again as pipes, it's not exactly a pipe in the multimedia framework in a little bit. So, if you've seen G-stream on the Rx show or any of the multimedia PDF, like, dealt with multimedia frameworks, till date, everything was a proper pipe. Like, you have a source node from where the data flows onto the sync, the next node, and then there is other nodes. But, in StateScribe, there are more of function calls, which are called by the level one, one level below. So, the, say, the graph builder would take care of the awesome player or StateScribe recorder, would take each of these modules, and then connect them together. And then the downstream time would call the read of the upstream and that's how the data flows down. So, data source is this, all of the source elements, like MPECO data source, or any of those, take care, is derived from data source. And this is where you actually put in your slippers. Slippers are file format recognizers. So, if you want to add, there's support for NKB now, there's support for ABI, there's support for MP4. So, if you want to add support for, say, WMV, you'll be looking at the data source. So, you'll add a sniffer, there is a register sniffer function you can put. So, you'll add a sniffer, get the mine type, and see that, okay, once the file is this particular type, and then you see this particular mine type, and then this particular header, and then, okay, this is my type of file, and then, that's how the rest of the file would recognize that. Yes, this is a particular file type. And you have media extractors which actually take care of extracting and reading the data out, because each of the file formats would have its own specifics about how is that data stored. Say, ABI, just a block of data that's there. So, if you have MP4, you have more track specific things, you have multiple tracks, you have audio, video tracks, and then you have, inside video, you can have multiple video tracks that are done. So, the extractor is what understands the format. So, and then you have the media source. Media source, again, is any component which actually acts as a source for any of the downstream components of the media source. So, our OEMX codec, which is actually integrating the codecs, your encoders and decoders, is also a media source. Because with respect to the writer or the renderer, if we had a proper renderer in place, then that would be a media source, right, because it's actually generating media and then passing it off. So, the media source is that, and then we have the media buffer, which is what actually carries the data around. So, that's the data that you'll be looking at. For the data part. Why this media buffer in metadata and all that is involved, we found this when you want to tweak the framework, you have to understand the structure very well. So, the metadata is what is used for generally your time stamps, your configuration information. So, why we dealt with it was when Skype was being done. So, we had to write a note which would take care of taking data from Skype and then passing it on to your decoder by flight. So, the metadata has to be passed from the street and then, because it's SO6 first. So, you have a codec specific configuration. How many of you have background with codecs and multi-label records? So, that's a very good question. So, essentially, maybe I didn't read the description properly, but is this a lecture for writing a new codec or optimizing a codec or is it using them? Okay, it's actually not any of them because writing a new codec is gone. That's my whole company's job. So, optimizing it again is very platform specific. So, codecs are out of the picture here. Integrating a new component could be, but it's mostly about giving an overview of space time because if people had more, I could get the details, but there are hardly five people with background and aren't really a person coding. So, it's almost impossible with that kind of background again. What I can try to do is I could move back, I could do a bit more intro of that kind of a thing rather than trying to get into the details. So, if you want to talk about details, we can do that later. But, I think I should stick to the basics part. So, is that okay? It's like a paid framework or something. I'm sorry? It's like the paid framework. Paid. Paid. Yeah, is it a paid framework which is open for all? It's open for all. You can download. It's part of that as well. So, the modifications to each of the companies, like everyone has their own variant of the framework. So, if you look at the TI branch of Android, which is there in my video, it's, they are changes out there. So, they are actually making a lot of changes for adding 3D support and a lot of codec support is coming in. So, that's there. Adding support for like, new servers. So, do you want me to talk more about the components and like how the, what this picture is about? Do you think that will help? Yeah. Go look at all the blocks. Just look at, say, let's just talk about the source node. Let's just talk about the source. Let's start with the source. So, how do you start writing your file? So, from the, like, how many of you are application, okay, you are guys. So, how many of you use multimedia in your applications? Okay. So, then let's talk about from the usage perspective. So, from the user, one of the problems that you see is there's a team in our company who was trying to write an internet radio application. So, the thing is it's actually pretty straightforward to write an internet radio application. The UI is pretty straightforward. Again, the idea is to give you like 10,000 radio stations. But then the issue is about 9,500 odd stations not playing. Why?  Beautiful, you have 10,000 stations with you. But 9,500 of them doesn't play. So, that's when you'd have to understand, even if you're an application guy, you would still have to understand what is it that happens underneath. So, that's why this whole RTSP and HTTP and all the coding formats comes in. The file containers, the file formats, all of that is relevant for you. So, let's talk from that perspective. So, if you take a streaming format, so you get an HTTP link, you might, you'll expect that it will directly play, right? Because SagePriot really has support for HTTP. Yes, but the thing is HTTP will give you some data. So, if it's an MP3, yeah. Assuming you are a SagePriot variant that's there on the phone that you have, has support for that particular MP3. So, if it's a VBR, which is variable bitrate, the coding might not support it. So, you have to get into like, what is the data type that's coming out of the data stream? So, how do you go about doing it? So, generally when you get to the HTTP link, so the easiest way to do it is, paste it in your browser on the PC and then get the data, and then analyze the data. So, you have a tool called Wireshark, which is extremely useful. Wireshark, wire, W-I-R-V, shark. So, it was called ethereal. So, now it's called Wireshark. So, that's an extremely useful tool to analyze what type of data comes in. So, what we saw was, some of the stations were actually in HTTP, but the content that was coming in was AAC. So, AAC is Advanced Audio Coding, coding. So, the platforms that they were trying it on did not have the AAC coding. So, that's why it wasn't playing fine. So, that gave us some more stations and then moved there to the rest of it. So, there's RTSP. So, that's the next type of streaming format that you might encounter. So, RTSP streaming, that's one of the things I would like to get into, but again, that's beginning into RTSP streaming as well. So, I'll explain what basically RTSP streaming is. RTSP streaming is like, say, if you make a phone call, you first, there is this, you dial a number. You dial a number and then you find it. So, the backend takes care of finding out where the other person is and then ringing it. So, that part is the call signaling part. So, people from the SIP background will easily relate to it. The SIP takes care of initiating the call. So, RTSP is something like that. RTSP takes care of initiating the media session. So, if you look it, when you go to YouTube, you have a small tab that says, quick 240p, 360p, or 480p and so on, or 720p. So, when you say 720p, people generally move to SD. So, the same stream is stored in different formats, in different resolutions. So, depending on your capability or your interest, say, if you have a lower end phone, you might not want to play, you might want to see the video, but not at the, maybe the fullest quality possible. They're streaming over GPRS. You'd be happy if you can get some data here, right? So, if you are on 3G or maybe if you are home and if you are on Wi-Fi, you would be, you would want a better quality video. So, how is it that the server gets to know that what is the capability of the client? So, the client basically has a negotiation session that happens, so that's what this RTSP does. So, RTSP gives it, so, again, coming back to the internal data example, we get an RTSP link, we give it to the media player and as an app where you expect it to play, it doesn't play, what happens? So, the RTSP that's there in the state spec, what it tries to do is, it tries to send a request to the server, and the server comes back with, okay, these are the formats that I support. I support X format in DCG's resolutions. Y format in DCG's resolutions. And then, the player has to decide okay, yeah, which is the best of it. The app doesn't even come to know the media framework takes care of it. So, the media framework has to decide okay. Based on my load right now, maybe I might be able to do a 1080p or a 720p or a lower resolution. So, that part is again taken care by RTSP and then the RTP part comes in, which is actually the data flow. So, the data flow is taken care by this protocol, this is like an associated protocol of RTSP called RTP. Again, there are variants, a lot of variants do it. So, Microsoft has gone and implemented their extensions, other people have. So, that's why RTSP, even though the link might say RTSP and even though you might, when you look at the specification of state spread, yes, RTSP is supported. And you expect the links to play, no, it doesn't play. Because again, the RTSP might be contained, might have a lot of codecs which are not supported by the platform. So, that's why you would, when you write an application, when you use streaming, when you use file play back, you have to understand what type of files are there, what are the different type of streaming formats that are there. What is the difference between the format, the codec and stuff. So, I'll give you one more part about what is this codec file format and stuff. So, if you look at an mp4 file, is it a codec or a file format or a? What? A file format. So, it's a file format, it's a container, right? It's a file, it's a dot mp4 file. But an mp3, is it a file format or a codec? Codec or a file format? It's both. Because mp3 can be a dot mp3 stuff. So, dot mp3 is a file format and a codec. But mp3 can also go inside mp4, an mp4 file, right? So, that's why it's a codec and a file format. Yeah, JPEG, is it a codec or a file format? It's a file format. Yeah, so, you get the hint. So, there are things which can expire itself. So, the wmd is actually a codec, there's a codec called wmd and there's also a file format, it's kind of wmd. So, yeah, but there are files, that's technically ASR. But, some people actually just rename the ASR file as wmd, so, yeah, technically yes. But, if you look at, if you download a container, you'll see a dot wmd file. It's technically an ASR file. It's, purely technically speaking, it's an ASR file. But, people would say, okay, this is wmd file, that's only bd, you know. So, it's, you're from here, right? So, yeah, so, let's move on. We will, I'll talk about the pieces of the playback part. So, the file playback is that, I mean, it's dp and rtsp, whatever I'm talking about. File playback is basically playing back from ugbug file and it plays back. So, you have the local file. So, you can play back from that. So, why I mentioned this time queue on the AV sync part is, AV sync is audio video sync. So, how do you make sure that a recorded video will have the audio playing together? So, what is the mechanism inside stage, right? Which hand is that? So, how it does this is, basically there's this queue that is there. So, in the awesome player part, let's come back to the log diagram. So, you have the, am I going to pass or, is it something of interest or should we go into something else? It's a very, very, so, talking from house. Yeah. My question on, I mean, from an application point of view, that would be interesting. Probably, I think the level here is bigger. I guess so. Okay, yeah, yeah. What's the reason you're going to do that? Yeah, I can take that question up because, I would like to cover some points of, since this was supposed to be a stage right now. So, let's at least cover some points of it, come on. I put some according to it, sir. I'll definitely talk about talking about that, because that's one of the applications that my wife used a lot. She sings to it. So, it's really interesting in the way people come up with multi-layered applications. So, there was a question there. No, I just wanted to add to that, if we can, we can render through on the use case of what you did with this type implementation. Okay. Then that too. Yeah, I'll get that. And when, I'll get to the end, where I summarize the performance of the application, the latency part, and everything so. That's when I would like to, that's exactly the capsule. Is it covers the integration for any products? I want to keep it as a needed component, a parcel or a company. Okay, no, I won't be able to talk about it, but we can at any time. We've done it, so we can. Yeah, one more question is a. Sorry. If it covers integration, would it be negative? Yeah, but the problem is, there are like hardly five people with codec backgrounds. So, if I start talking about it. Yeah. I have one question on the HTTP, which you put in your slide. I mean, Google says that HTTP live streaming is available only from Ice Cream Sandwich, right? So, what do you mean by that? Yeah, actually, there is some, with some push of this code, in Gingerbread. So. The phone doesn't support it. Yeah, it could be depending on, like I'm not sure, which phone I'd like, I don't know. No, Gingerbread phones. Okay. Yeah, but in the code, there is support for HTTP.  No. I'm talking about, if you give an HTTP link and then, I give a HTTP call in slash slash and then a file name, right? At the end of it, there'll be a file. So, kind of like a progressive download here. So, not the live stream? No. Yeah, officially, yeah, it's only coming up in Ice Cream Sandwich, but there are, say usually, how the Android works is the first time around, when statesmen will introduce, there's only a playback path. But then the record got added later. But even in the first one, there was a, like kind of experimental variant of it and stuff. People keep nodding. How does Flame's question be made in the... How does Flame's question be made in the... How does Flame's question be made in the... HTTP live and Gingerbread and... HTTP live stream completely different from... Yeah. This via Flame. There is some support there. Yeah, there's, like a preliminary support for it. So, this is saying that HTTP progress is done. Yeah. So, why this... I'm gonna talk about a bit more about AV sync. So, AV sync, say, I'll talk about what AV sync does. So, you have a file and there are video samples and there are audio samples. So, you know that both of it are stored separately. So, video is stored separately from audio. So, how is that you can correlate a particular video sample with an audio sample? So, for that, the basic thing that it have is a timestamp. But then, the thing is, your audio pipe is very different from the video pipe. Your decoding goes on from through a different piece of hardware, while your audio might be mostly software coding. Even if there are hardware coding, it's a different pipe again. So, finally when we are rendering it, someone has to make sure that the samples that I'm playing back on the screen is the same thing as somewhat, or somewhere on the same reason as the audio. It should not be like too slow or too fast, right? So, one of the things is you have to rate limit it, because audio coding, decoding might be faster. So, you should make sure that the audio playback is still happening at the same speed as what was recorded, right? So, if you are recording at 8,000 samples a second, you should still be playing back at like the 3,000 samples a second. If you're playing back music, you might be at 48 kilowatts, and you should still be playing at 48,000 kilowatts. So, similarly, for video, when you have video coming at 30 frames per second, how is that even correlated? So, what happens is in the renderer part, the final component which takes care of putting things onto the screen, the renderer has a skew that is there. So, it's kind of like having a timer. And the timer is actually updated from the audio side. So, whenever the audio is played, the time gets updated. And this is used as a clock for the video. So, the video looks at the time and sees that, okay, 15 samples have played. And then, I should be at this particular sample. And if it's not, then it goes for a sleep. It basically should use itself again, after that much time. And then, it comes in the renderer. So, that's the basic logic that's there. The audio is the master. So, audio, based on how much audio has been played, you go ahead and update the clock. And then the video looks at the clock and then sees what to do. If it's too late, it drops the sample and then moves on to the next sample. So, why is it that we generally keep audio as a master? Because audio, slight jerks in the audio, you can actually perceive. So, generally that's why audio is kept as a master. So, So, shouldn't it be the other way around then? I mean, if you are saying that slight jerks in audio is like acceptable. No, it's perceivable. It's not acceptable, that's what it is. Oh, perceivable, okay. It's perceivable.  You keep audio playing and then you drop, you drop or you sleep for a while for a video to catch it. Or if video is too fast, you sleep for a while. And my second follow up question is like, let's say you're actually doing this, right? Generally, the one which gets processed faster, that should be the one which should be sleeping, right? Because the other one is taking more time. Ideally, yes. But if you're trying to do, or you're sleeping in audio, you can actually notice it. The problem is perception. Because video, you can't perceive it even if I drop like five frames and give it to you. For a second, you might, you might be able to perceive like five frames, but if I'm doing it cleanly, like if I do drop two here and then two later, you might not be able to perceive it. So, that means it's actually like getting magnified, right? One is you're dropping, you may be dropping a couple of video frames because the processing is slower. And second thing is you may be dropping a couple of more frames to actually make sure that your video is in sync with the audio. So, exactly, it's the same thing. The same thing, say when you're playing back flash on your laptop, like flash is a bad boy, right? So, everyone tries to play flash and look how slow flash play back is. So, when you play back a high resolution flash video on your laptop, if you're, you try it on a network, you can actually see this. You can see that the video is terribly slow. Like it's painstakingly slow. It just doesn't move, it's just like, I'm moving like a slow motion stuff, right? So, basically what's happening is a lot of frames being dropped. So, that's what finally happens. It's one of, whatever you said it's one of the same. So, basically you drop video. And it's not that, just because you drop video, you drop more, no, that doesn't happen. You drop video and hope to catch up at some point in time. So, assume that your video processing, say your processor speed is 600 megahertz. And assuming that you have finer megahertz per video. But for the resolution that you have, if you're processing, if you need 1000 megahertz, that means that you can do only 15 FPS, right? 15 frames in a second. So, 1000 megahertz is required for 30 frames. Then, finer megahertz you can do 15 frames. Whatever you do, you can do 15 frames. So, you have to drop the rest of it. And you can't drop before the decoder because of issues with the coding. It would be ideal if you could drop it before the decoder because you can save on the processing and then move on, but you can't do that. Because video generally has a dependency with the previous frames and frames link. Why this slide, okay? So, generally, this is what would be looked into when we actually talk about integrating a coding. So, state spread assets works on integrates OpenX codecs. So, this is the flow that would be there. Why, again, this is required is, say, when you are integrating a custom codec, when you are trying to integrate a new file format or a new streaming format or something, and then your decoding is not happening fine, you'll have to dig into OpenX OpenX codecs. Because this is the flow that will happen. You are empty buffer done, you're empty this buffer and fill buffer done and fill this buffer. So, this is the flow that would be there. So, basically, codecs are given input buffers through, depending on what type of codec it is. So, as soon as you are encoder. So, encoders input buffer would be given to an empty this buffer call. And the encoders output buffer will be given to a fill this buffer call. And then, when it's done encoding, the encoder will give back a fill buffer done. And the input buffer would be created through an empty buffer. So, that's the sequence. So, what, and awesome player actually through the WinX codec, WinX codec is the wrapper over the whole WinX way that's there with them. So, through the read function, the awesome player takes the buffer up. So, if it's video, after the read, you get the data and then you render it. Okay, so, let's talk a bit about this. Let's just talk about the codec configuration because one of the things when you have to talk, when you look at a codec integration is, the way your codec understands a particular codec, it might be different from the way it comes in. So, that's one of the problems we have with Skype. The way the PC gives you, the frames are a bit different from the way the platform codecs were giving us. The PC was giving the first frame as a smaller frame, which is just the header, and then the data separately. While the rest of the data, while the platform was giving the whole frame with the header and the frame as one single frame. So, the codec config, you'll have to understand how is it that the platform takes care of, the codec on the platform takes care of parsing this codec configuration information. So, when you're integrating a codec or when you're integrating, when you're trying to use a codec, if it's failing, you would have to understand what is the type, what is the way in which it takes the header. Because usually, the header parsing is one of the things where you might mess up. The way you're giving the header to the codec might be different from the way it's expecting it. So, try to understand, go through the codec specification or the documentation that's there. Try to see the way it's already indicated. So, if from the Epic 4, the Epic 4 extractor is a good place to look at, because they would have integrated with the Epic 4 extractor. You can see how is it that he's using the codec configuration which is parsed on there. So, do we have any questions here? What you think is, if there's an audio presence, you can do a thing, you can, you know, you will just explain that. Yeah. No. If there's no audio presence. If there's no audio presence. Yeah, it's easy, right? If there's no audio presence, you just play it along with the timestamps. So, your timestamps would be proper. Assuming your timestamps are proper. If your timestamps are not proper, that's when you're done with them. So, if your timestamps are proper, what you'll be doing is you just take, look at the timestamps and see when is it that each of the frames should be played. So, you have a presentation timestamp, which is basically your time at which your video should be played. That's it. When, so, for example, the use case that I'm talking about is a surveillance application where you get only the audio, but not the video. Okay. So, basically the driver is also to be written, or at least the modification of the driver is to be written and the analysis and the layout part is also to be written. So, now, when would it occur that the timestamp are not proper? It's an only audio, right? Only video. Only video sign. Okay. The timestamps might be a problem if your capture site itself is timestamping it wrongly, right? That's when the timestamps will go for it also. Right. Is there a way to ensure that the timestamps don't go wrong? No. There's nothing you can do. What you can do is, like, if you, say, if you, there are other problems you'll have, you'll have an issue with clock grips and stuff. So, there are protocols for, like, trying to synchronize that and stuff. So, that's outside the purview of whatever that's there in states. But when you're implementing an application like this, you'll have to worry about clock grips, you'll have to worry about, because the way you're booking, you might say that your clock is actually a, you would say that you would want a clock tick every once in 33 millisecond. And your system will tell you that, yes, I'm giving you the 30 millisecond, but what could be happening is the system might be giving it 40 milliseconds. What can you do for that? Right? So, these are the practical problems you'll face, because you might still be assuming that your system is running fine, but it doesn't. So, the record pipe, do you want to get into this or should we take up more quizzes? Can we? Yeah. How do we record it? Okay, recording is likely simpler, because you just, as long as you put the correct timestamps, it's okay. So, each of the frame, say for, we'll talk about the record. So, the camera source actually is the one that gives, takes data from the camera hat and then gives to the rest of the pipe. So, the camera source when it, there's a timestamp callback. So, it basically timestamps it. With the media buffer, there'll be a timestamp associated with it. So, and that timestamp is what is used by the encoder and that timestamp is what is used while writing it. So, the time is taken care of by that. So, you drop samples with the video encoding takes long time? Yeah, if video encoding takes long time, right? We don't have to take care of it. Automatically buffering inside the pipe will take care of it. So, assume you have your encoder, your camera is capturing at 30 frames per second. But your camera is doing 1080p, but your system is not able to do that kind of resolution. So, what will happen is, even though your camera is capturing at 30 frames, since your encoder is happening at, say, 15 frames, it'll automatically drop down to the lowest. It'll drop below the encoder. No, it'll somewhere close to the encoder. Because you can't be faster than the slowest guy in the pipe. So, it'll automatically drop down to the slowest guy in the pipe. And why that happens is because the buffering internally, says the camera needs some buffer into which it can write data, right? So, the camera basically, since the encoder is still crossing the earlier buffers, the camera after a while, it will start starving. So, and then the camera will automatically drop down to 15 frames. So, after the initial slight jump, the camera will automatically come down to 15 frames. That's the beginning. Despite the audience being separated, it's like sequence. It's a separate, separate box. RTSP as it has a control for forward end. Yeah. No, actually it depends. It depends on the way you would like to implement. Because fast forward end view is slightly more complicated because you have to have the biggest frames also, right? If you are, look, if you take a look at quick time, you can actually go back a frame by frame. If you are good at it, you'll have to decode every single frame. So, there's a huge component coming up for RTSP, but I don't think we'll get there. So, yeah. So, yeah. So, another thing is, with respect to the record pipers, how do you make sure that you can actually have a zero copy? So, StageBright allows for works. So, works are variations that are required by the camera and the encoder. So, StageBright actually tells you that, okay, if you don't want a mem copy and if you don't want a particular port to allocate memory for it, you can take care of, you can tell the encoder that, okay, there's not going to be any memory. Your buffers are going to come from the camera. So, you have to make sure that you use, you basically look at any extensors like this, which is possible in your platform, because doing a mem copy for a camera type of a data is huge, because if you're doing 1080p and if you're doing mem copy at 30 frames per second, you're looking at about 40 megabytes.  So, basically, you're doing the wrong thing if you're doing a mem copy. The hardware coding integration, I think we can skip this. I think we'll have to skip the RTSP streaming because again, way too many components involved. Maybe we can talk about, I think what I'd like to talk about is this. This is my last slide. So, the copies is what I think. I do see how is that we can exchange buffers instead of copying data. The latency is one of the things that we had. I'll come back to the example of Skype. I think the talking time will have to wait. So, I'll talk about Skype because it involves latency, involves performance, and it also involves eliminating a new component. So, latency because Skype actually has a hard requirement on the latency. Latency is basically how much time you take from the camera. Say, if this camera is taking a picture of mine, it's actually decoding and then playing back on a TV. So, latency that we talk about is in glass-to-glass delay. We call it a glass-to-glass delay. So, basically, from this glass, which is the lens, to the other glass, which is the TV there. So, what is the latency that we have that we can achieve there? So, ideally, you'd be happy if, generally, people don't notice if it's like 300 milliseconds, this type. It's okay, it's supposedly okay. But we actually work on systems which needs 50 milliseconds latency. So, you want to achieve 50 millisecond latency. You have to go really deep into the framework. So, what you have to do for that is, your camera generally captures one frame in a second, right? No, it's a 30 frames in a second, but it's 30 frames. So, the least you can go to is 30 milliseconds, right? You can't go below that. So, what do you do? You basically split that frame into multiple slices. So, you don't get a frame completely. You take your portions of it. And then, the encoder also, like if the platform supports, like encoding that portions of the frame rather than the whole frame, you take that. And then, similarly, the decoder should also support it and then your display should also support it. So, that's how we go ahead and optimize it. And another possibility is with respect to the buffering that's there. So, if you see, like the default configuration which might be there, might be having a lot of buffering internally. Or your codec configuration. Your S264 has specific configuration called display delay.  So, you have to understand the codec internals if we have, not about how to implement a coding or how to optimize a coding, but about how the behavior of the coding is. Basically, read the codec data sheet that comes along with it and then see how it behaves. So, if you feel that at baseline, maybe we can, at the baseline profile, we can configure the codec so that the buffers are not a lot. Any latency is gonna come down. The other thing is signaling errors. So, one of the issues that we have with the current state of state is the fact that there is a player pipeline and a recorder pipeline. What if I wanna do something like a feedback point? Say, based on like a bandwidth, say if you are doing a media conferencing, what you would like to have is a bandwidth identification scenario where it actually adapts to the kind of bandwidth that's there in the system. So, if you're making a media call and if I'm making a media call from a phone on a 3D, the kind of bandwidth I have would be very different from what it would be have at office. At office, if you're seeing on a big screen, you'd want to have the best quality possible. But if you're doing it on a phone, you'd be happy if you could see the video there.  So, you would have to identify what's the bandwidth that's there. And then change the encoder bitrate and then based on that the decoder, because the receiver pipe is the one that actually gets known. How many frames are getting dropped, right? So, based on that, it has to somehow signal to the other pipe, to the recorder pipe that, yes, there are backup drops. There should be some mechanism of reducing your sending bitrate because there seems to be a lot of backup drops in the network. So, if, or if, what if, because generally your radio, your 3G data, there'll also be errors. There could be errors too. So, if there are errors, how is it that you recover from it, right? Because the decoder has options of recovering. But then, how is it that can signal to the encoder? Add these tools. So, it would be ideal if it had some kind of a framework for that, like some kind of signaling framework for that. So, did you, as part of your Skype project, the minimum time for Skype has plans on all the platforms? Yeah. Okay, did you, did we build what? As part of Skype, you would have run into this problem. Yeah. In large screen. Yes. So, Skype is actually pretty easy for us because Skype actually takes care of understanding what the bandwidth is and telling us. If you're doing something on your own, if you want to do video conferencing, scalable video conferencing, using stage fright, it's gonna be worth it. So. Related to the slice mode, the latency per frame will still remain the same, right? Going to slices? Do you want to, like, move it? Latency has actually come down because, say, assume that your buffering is going to be four frames, okay? So, if you're, if you're capturing at a frame per second, the lowest denominator is going to be a frame. Then you're looking at four to 30 milliseconds. So, if your buffering is going to be four frames and if your slices are going to be one-fourth of it. So, you were saying basically your processing will happen in a patch. Is it what you were saying? No. My processing still happens in terms of the slices. So, yeah, if your encoder doesn't support slice mode, there's no point capturing in slice mode. No, I agree. But I'm just wondering. And let's take it up because I can show that exactly the world. And the recording works in terms of pipe or in terms of buffer? Because in buffer, we fill the data and then pick the data. Yeah. Write data on N and read from start. After recording, the data is passed around with the buffers. This is why we are creating some application where network communication is there for, suppose audio chat or video chat. Okay. Then we should get continuous data. Okay. If we create buffers and picking data, it may give us delay. No, that's what we do. Internally, that's what finally happens. There is a pipeline, but there are buffers being exchanged. That's how finally the recording happens. Then what about the latency between them? That's what we're supposed to pick. And that's why we get paid. Yeah. So that's a very good thing. So Skype support starts supporting video call and Android very big and stuff, right? Yeah. So what took such a long time for Skype to start programming? That API support because, actually we have comparison which says our performance is like 16 times better than the Skype performance that's set. Because we are basically using the hardware better. Because if you write something that's generic, you can't actually be using the full capability of a hardware. Because at the top layer, if you're writing an application which you can install on, say from your Nexus One to Nexus S to, from your single cores to dual cores to different types of hardware, you just can't use the hardware as the most optimal possible. So there are like empty number of silicons that are there. There are empty number of, can't be reached there about those silicons. Just not possible to write an optimized code forever. So even ours doesn't work well for every silicon. One question is, Skype has a pure app. Yeah. You are talking about framework changes and all that. Yeah. So ours is not downloadable into any code that's set. But Skype is downloadable to any code. Yeah. But that's why they're not, that's the good thing. Skype is downloadable onto any code. The bad thing is, you won't be able to get the best possible performance. Say, an example is on an iPad, you have FaceTime and then you have Skype. You should see the quality difference between the FaceTime and Skype. On the same bit, right? You'll actually have a much better performance and your battery was going to last much longer with FaceTime. We have tried that. Because FaceTime actually uses the hardware much closer. And Skype is not able to do it because Apple is just not interested in opening it up. This is a performance where you say 16X improvement, what is that performance? You're talking about decode and say, the resolution that we can support. The resolution at the same performance level, right? What's your Skype? We are able to do something with it, 30 FPS and the next step we are able to do is 1080p 30. We have showcased it, so. I think we should go on to something other than Skype. So we can wrap up now, anybody who has questions, can you get us the AXE data? So, it's on the first slide, it's go ahead, it's gmail.com. So, I'm really glad that Alice could take up time to have a session over here. We've got our applause for this session.


Get a bigger room. So last year we had a room at seat at 80 and there was still a line out the door And we asked for a bigger room and here we are so please use the app people pay attention to the feedback inside it And it helps improve the conference overall so Once again, everyone. Thank you all for coming this morning We're going to be kicking off the community to everyone with our first presentation from sage sharp on countering imposter Imposter syndrome culture sage. Thank you very much for coming All right. Will you raise your hand if you cannot hear me? Or if you can hear me Okay, cool So I'm going to talk a little bit about how to Counter imposter syndrome culture just for a show of hands. How many people don't know what I mean by imposter syndrome? Okay, cool and for people a live stream will we'll cover it too So imposter syndrome is actually the term was first coined in 1978 It's a bit of a mouthful to break down But basically it is the internal feeling of feeling like you're fake like you're an imposter Even and and feeling like you're not intelligent. You're not creative. You're not competent even though you have evidence of Of high achievement of of being doing smart things of being competent of being creative So those those two pieces are very important that you must also you must feel Like you're an imposter like you're a fake and also have evidence of that high achievement So a lot of people in the room for the people who are watching the live stream There was not very many people that that raised their hand and said they hadn't heard of imposter syndrome before So if you've heard of imposter syndrome, some of you might be going Oh, no, not another imposter syndrome talk because it's been talked a lot about in tech however, this talk is about how our technical and free software culture really creates the feeling of imposter syndrome and what we as Technical people as free software people can do to change the culture that causes imposter syndrome So it's a little bit different One of the things that I want to cover is a bit about why we see especially that Marginalized people that people from groups under represented in free software really feel imposter syndrome they're more likely to feel imposter syndrome and part of that is based on Some of our assumptions So when people who are privileged to Attend a conference who have the financial means who can take time off to attend a conference when they look around They will see a particular majority and the people who are from groups under represented in tech They're not going to see themselves reflected in our community Reflected in the speakers reflected in the people who organize conferences And so part of imposter syndrome is looking around and going do I belong here? I don't know and also the fact that people who are are the part of the majority in free software May assume if they see someone that doesn't look like them that they aren't a real contributor And this is actually true if you start to look at things like American tech companies Because of hiring practices at tech companies if you are a person of color you're not as likely to get a Job as a developer you are much more likely to see people of color in a job like a janitor or Or the cleaning staff or security personnel and that means that privilege folks when they see a person walking through their building In a company who is a person of color? They may assume that that person is not a contributor. They're not a free software contributor. They're not a Technical contributor and that actually leads to people you know this person went to an award ceremony and They were a person of color and a white woman Assumed that they were part of the wait staff at this award ceremony and tried to like hand them her napkin And so if you are a person of color and you constantly receive these signals that say you don't belong here You're going to feel like you don't belong here The other thing is that a lot of times even when we try to get people who are from On groups underrepresented in free software into free software People of privilege white people are much more comfortable in them being a junior in a junior role than them being in a senior role So this is a person that's expressing that when they started to achieve more when they started to People started saying you don't deserve those achievements. You shouldn't talk about those achievements Why are you bragging? Why are you boasting and? part of imposter syndrome is feeling like all your accomplishments are due to luck and So if we tell people especially marginalized people in tech that they shouldn't brag about their accomplishments that they shouldn't boast about them That that's that they don't deserve those then they start feeling like it's just luck the other part of imposter syndrome is Feeling like your failure like you don't deserve What your accomplishments there's also a fear of not being seen as as smart and Feeling like everyone knows more than you Sorry So I personally experience imposter syndrome as a gender minority in tech. I have very high standards for myself But then when someone tries to Thank me for what I've done or talk about my achievements Then I can't internalize their praise and so that's how I experience imposter syndrome if you see Look at someone and you're trying to figure out whether they experience a posture syndrome often It shows up as them looking like they're humble or maybe they have low self-esteem or they're like a real perfectionist a lot of times people who have imposter syndrome because they have very high standards for themselves and They're afraid of being seen as a failure. They will often really polish their work before they submit it You'll see it has to be perfect Before they can contribute it They may downplay their accomplishments like if they're They may say things like I'm not a real developer. I'm not a real speaker Even though they do develop code and they do speak and if you You know, thank them for their work often times what you'll see is that they will say Yeah, but and start to criticize their work and so you may see them Tear down their own work when they're thanked for it The other thing that you may see is that they may be hesitant to ask questions in public and part of free software is Contributing in public is asking questions in public and so But because they're afraid to be seen as not smart they're hesitant to ask questions in public Which brings me to the next point. Why would you be hesitant to ask questions in free software? This is one of the myths that will tear down in this talk and Some of it is is some of our free software culture telling people RT FM. Go Google it Well, everyone knows this or even you know Pretending to be surprised when someone says that they don't know about something feigning surprise All of these singles tell people I shouldn't ask that question. I should you know hide that I don't know about this the other thing is that the basis of Free software technical writing Can also lead to imposter syndrome So I recently had someone actually is back in November someone submitted a pull request to my Repository, which is a jangle website and this wasn't a pull request that I wanted It wasn't an issue that was open They just submitted it and it turned out they were a technical writing student at a university and they were submitting pull requests to To projects to try to get some experience in and doing their technical writing and Their change log for their pull request was very interesting and I've highlighted specific words that I want you to think about The words that they're the stuff that they're trying to remove are they they're trying to remove? Ambiguity, they're trying to remove language that sounds unsure They're trying to make it more formal and clear and authoritative and That's exactly opposite of what we want for people to ask questions If we are encouraging people to ask questions, but we can't admit to ourselves When we're unsure when we're unsure of how our project works or whether it works correctly if We can't give up some of that authority to To be honest about when something might not work, right? Then we are perpetuating this myth of everyone is perfect the software is perfect and no one should ask questions If technical language basically turns us all into frauds We don't admit when our project is hard to use When's the last time you are reading through documentation and someone said this might take a while this part of the UI? Might be confusing to you. I'm sorry People don't admit those kind of things but if you're working with free software and you are running into trouble and The documentation doesn't admit that this might be a troublesome spot in your software You can internalize that it's your fault That you're stuck We we often when we submit our contributions. We're trying to get them in We're trying to make sure that they're right and convince the other person that they're right, but we don't admit Hey, this part of the code. I wrote at 1 a.m. Like this might not be correct, but it works for me We don't admit when our contributions could need a little bit more polish because we want to get them in we there's also a culture around in free software of you know trying to keep up with the latest trends Trying to understand the latest technologies and oftentimes we don't admit when we're not a subject expert We will just not along with someone else that's talking about something that we don't really understand We don't feel comfortable asking questions And if we don't feel comfortable asking questions, then we're also perpetuating imposter syndrome and others Because basically if we if we're not honest in our documentation about what works Where we're where we're unsure our code works We are making people feel Like when that when they're confused. It's their fault. It's a lie that we tell new comers to open source Because we don't want our project to be seen as less than perfect So the solution is to actually model when you're uncertain If you're unsure of how to make a technical decision if both pass or you know equally confused using or You know equally Find either way Model that say I don't know how to do this. This is something. I'm just picking one If you think that your contribution might be incorrect or that some of the code might be buggy Be honest about that, you know say I don't know if this part of the code works. I've tried it I've written some tests, but I'm still not sure if it's completely correct If you are writing some documentation for your free software project And there is a part of it that is hard to understand or hard to use be honest about that Because when someone finds a problem runs into a problem then that documentation may help them And if you don't understand a technical word or technical concept Please like speak up You can normalize asking questions You know you can do things like in your documentation Trying to make sure that there's a help form for folks to to try to get help if they have questions and I'm really if that's in that troublesome spot saying hey if you if you need help ask here Actually having people to answer questions about your software project is useful having a welcome committee And that it's Sometimes it's as simple as just changing how you phrase the question So if you're working with another peer you're maybe doing a peer review ask what questions do you have? Rather than do you have any questions because if you ask do you have any questions? Then that their instinctual answer is going to be no because they don't want their they're afraid to ask questions But if you ask what questions do you have that shows you're expecting questions that you're expecting feedback from folks the second part of imposter syndrome is that a lot of people who experience imposter syndrome feel the need to Not brag about their accomplishments. Sometimes they might feel like they're a failure and so they're more Humble about their accomplishments than others Oftentimes when people who experience imposter syndrome are thanked there's this reflex of This person thinks that I've so for example if someone came out to me and said afterwards and said thanks. That was a great talk You're a great speaker. I would as a person who has imposter syndrome think well this person thinks I'm awesome But like if they really knew how I struggled and how this morning I added my slides And it's still really not clear for English speakers non English speakers and and and and I can tear down my talk a lot and part of that is because Because of how things are worth it and These are hacks that I have learned myself that I've taught the people around me of how to get around my imposter syndrome And I'll teach you So when you're giving praise to someone instead of just saying thank you focus on your feelings say I Appreciate your talk. I found your talk insightful I felt Really excited about your talk because your feelings of excitement of joy of inspiration at my talk I can't argue with those I Can argue you down about how good a talk it is, but if you say you were excited about my talk I can't argue with your feelings The other part of imposter syndrome is that for people who experience imposter syndrome It often seems like everyone else does things effortlessly that it just shows up that it's just perfect and some of that is Because of how we praise people's characteristics So we pray tend to praise people's static characteristics We say a person is smart or intelligent now Someone doesn't really become unsmart the next day. It's it's smart is something that's sticky smart is something that lasts a long time and So these are static characteristics. These are characteristics that we we tend to think stick with people people don't Say, oh, you're a good developer one day, and you're a horrible developer the next day People don't change their mind about how great a talk is but these These particular static characteristics can actually trigger a flood of doubt and people who have imposter syndrome and that's because the impact of praising them is If you if someone completes a task quickly and and then you say, oh, you're so smart because you completed the task quickly The next time the person tries to complete another task and they complete it more slowly Then they'll think Maybe I'm not smart and that's because you're praising the static characteristic of being smart versus the effort that someone puts into something and This leads to people hiding when they're struggling So instead of praising static characteristics like a person is smart a person is good a person is great Praise how much effort they put into things, you know, how much time they spent researching things how much they you know read your Contribution guidelines and really try to make sure that it was up to your up to those guidelines The time they spent making good commit messages Documentation The time they spent trying to reach out to get help and review and feedback We often pretend that open source and free software contributions are effortless We all we see is a get commit message with the perfect commit and the perfect code We don't see all of those drafts that went back and forth in the discussion and so part of What we can do is to actually reference those if you've got You know a contribution that has gone through a lot of references even just adding a link to the discussion of Those references the the previous patch sets That acknowledges that the code didn't land perfect it went through several iterations of your contribution before It got in The other things you can do are things like credit the people you learn from if someone says, you know, hey you Really write good commit messages and you could say yeah, I really learned from this other person over here And maybe you could learn from them too Acknowledging that the effort of learning the effort of acquiring a skill takes time This is the kinds of things that can help People who have imposter syndrome so to wrap up Just some some smaller tips for for summarizing this For my first challenge to you is to think about When do you see a random person walking down the street? Do you assume they could be a free software contributor? Assume everyone could be a free software contributor Don't let your unconscious bias Limit you there think about it really try to work on it The other thing I would challenge you to do is to model when you're uncertain in your technical decisions in in the different contributions you make and really try to document when your project is hard to use Let leave people those little breadcrumbs that yes, maybe they won't be the only one that's struggling with this particular topic and my the just simple language changes like asking what questions do you have Versus do you have any questions? And talking about trying to praise the effort that someone puts into contributing and not static characteristics like smart or intelligent And really acknowledging how long it takes to do a contribution how long How much effort you have to put into it and if you're thanking someone Using I appreciate or I feel rather than thank you can can help people get over that So I think I have a little bit of time for questions. How are we doing on time? Okay, oh, and I would also like to Acknowledge that this talk took I said 25 hours, but it's really closer to 30 and five months of like these ideas Noodling around in my head So I just want to acknowledge the effort that I put into this talk All right, so questions Or do we have a mic? So from your experience how often do you meet someone with imposter syndrome like if I'm part of an open source project How often am I to expect? Okay, this might be it so From my experience is a little different because I help run The outreach the internship program and we're all about trying to improve diversity and open source So I work with a lot of people from groups underrepresented in tech And I would say at least 80% of those have imposter syndrome So it really depends It also depends on like your your your community makeup Hi, I mean, I think that that you can really look at some of those signs the external signs I talked about of like people being perfectionist and And and also having had achievement but also like tearing their achievements down and like and start to look at those and figure out Yeah, just first of all want to say thank you. I appreciated your lecture. I found it quite interesting. I Recognize a lot of stuff in myself in it One of the things I find is when my imposter syndrome strikes and I can't reach that level of perfection is because sometimes You have to incorporate other people's Efforts that kind of immobilizes me Have you found any smart hacks for getting around to immobilizing factor that comes with imposter syndrome? right so So there have been times when I'm I'm like I Don't I can't get something to the point that I really want it to be apps And what I have to do is I have to convince myself. I I need others input to improve This is a draft and I just have to keep telling myself. This is a draft. I'm going to improve it And I'm going to get feedback. So for example for this talk I expect I'm probably going to give this talk at another Venue and so I'm like, okay. This is the first draft. I just have to do it So that was that was how I I don't know if that helps I I very much enjoyed your talk I I have been thinking about How to kind of introduce new people and for a long time I have just said like do it verbosely But it occurs to me that that could probably also use some improvement like, you know, it's like it's not enough like Oh, this is my friend Sally who? You know is working on media goblin like but I could probably do a little more and I wonder if you had any thoughts on that Yeah, I think I I have actually had my imposter syndrome triggered by people like introducing me as like hey This is sage and they were a great Linux kernel developer and did this thing And I and I think that there's that we we still want to like Acknowledge the work that people do and and talk about that But I think that there is a way I'm trying to think that there's a way we can turn that around You can talk about the number of years that they've contributed to that you can say they did this great feature I Feel like there are ways we can talk about people's effort people's work without adding those static characteristics to it, so Yeah, thank you so much how creating a Thank you culture helps people like that. And do you have any concrete advice to create this kind of praise? environment I I think so I I think there's a couple things The the recurse center has some very good social rules One of the social rules is don't feign surprise Don't pretend to be surprised when someone doesn't know something and I think that really created a culture where people could ask questions Another thing that they did at recurse center when I was there was they had daily stand-ups where people just said Hey, this is what I'm working on and that allowed people to be like and I'm also stuck on this, right? And so that helped for the for the praise part what I've tried to do is I Have tried to praise the people that do the most Unenjoyable things so like when someone that submits a bug to my my project I'm like, thank you so much for like finding this bug I'm I'm so glad that you you know were able to help me notice this because this is something. I didn't notice, right? And I think that there is also a way to thank someone for their contributions without like talking about the perfectionism of it but saying like Especially when someone submits a draft of saying like I can really you know I can tell that you you know put a lot of effort into like this part You know, I think that this part couldn't use a little bit more polish, but basically like balancing it out, right? Yeah, okay. We have time for two more questions. So I'm gonna start here Just want to say and this really resonates with myself And so I'm very very grateful for such a great subject So my question kind of falls on the previous and where let's say we have a community of hundreds thousands How do we break that down because I assume there's lots and lots of imposter syndrome people in that Section, how do we break it down to encourage them to take that first step? So for example would be set up events where this isolated event The disclaimer would be everyone is welcome. There's no Limitations, there's no restrictions on what you can provide. Do you have any suggestions of any other way of trying to? Isolate and get them more involved, right? I think that I think that especially when it comes to events People who have imposter syndrome are afraid to speak Because they they feel like they don't first of all have the experience to do so but even if they do


Hi everybody it's Sam at Mixed Up Craft, thank you for watching my tutorial today. I have got the Making Cards Papercraft magazine, this is the August 2018, there is now the September issue out but I've got this one and as soon as I saw it the card inspiration is brilliant anyway but as soon as I saw these papers it screamed to me a little travel album so these are the papers that you get and there's some other ones as well but I just taught you three but look how wonderful all these scenes are of all different countries, France, we've got another one of France, oh sorry Normandy, Italy, St. Michael's Mount and then look all in here Miami Spain, another one of Miami, Santorini, I mean there's just loads and all there as well then you get these background papers, real art deco styles, there's that one, there's these two and I think there's one more for this one, yeah there we go the pink and then it goes on to then something completely different and again I think these are gorgeous and I'm going to be fussy cutting all of these because I do love this magazine and I just quickly show you those ones because I probably end up doing another tutorial using these but aren't they, aren't they, aren't these darling, look at little bunny, I mean they are just really super cute and then you get the background papers to match, beautiful balloons, more balloons, they're lovely, really, really lovely, there's very, it's very rare this magazine gives me papers that I don't like, there might be the maybe one or two that I won't use but generally they are really really good so I'm going to be making a travel album, I'm not sure the exact name of it yet because obviously I haven't made it but let's get into the tutorial and see what I do. Okay so what I'm doing first of all is just going through and cutting all of my, let's call them I guess postcards, kind of look like that and then just trim them all and you can see what I've done here and I've left a little, it's about a quarter of an inch, a little white frame around them all and they are just really lovely, I just, yeah, thank you making cards, you know I love your magazine, I forgot to mention as well I'll add the link to their website because you can buy back copies, you'll still be able to get a hold of this one and you can get a digital so if you don't want it posted because this is you know perfect to have as a digital magazine because it's all paper so you can just print them off on your own printer, you could print this onto card as well and always photocopy your, if you have the digital copy then you've got it forever but if you don't photocopy your papers, do a few copies of them just so then you can use it again so I will share all those links but you can see here I'm just lining up the edge, the plastic here with the actual frame and then it gives me that perfect white border on them all, I don't want to cut into these pictures I want to keep them whole, I think really this album is just going to be full of mats and layers and pockets and that's pretty it's going to be straightforward but I think there's so much colour and fun stuff with these images that that's what I want to be the main kind of focus on this album so yeah if you've got this just go ahead if you don't have this and you're doing something then yourself and you just want to know the sizes these images are three and three quarters by four and seven eighths of an inch okay so that's the size that I'm cutting so if you get whatever it is you want and get it cut down you can just use nice plain paper that would be fine and pattern paper sorry so I will tell you the amounts and everything again once I know what I'm doing free styling at the moment okay so I've got all these letter envelopes they're in a pack I think you're about 20 we only needed one so I've had all these lying around for ages but I'm going to use these as my pages because they are pre-made pockets so what I have done is cut so I've already prepared all of this now one thing I didn't realize the good job I did but four of the so one of the pages are actually bigger the images can you see them so this one is obviously bigger so these ones I'm going to use for my cover so I think they're going to work really nice those two are the same actually apart from one but I'm going to do something with those so keeping them to one side so just if you are using this make sure that you check so what I've done is I plan on having everyone matted on this black which will then be layered on top of the envelope like so you see there you get a really nice page I just want to keep these images whole I don't want to you know do anything to them really so what I've done is I've cuts one two three four five six it's going to be a six page album so with your envelope now my ones are four and a half by nine and a half I believe yep by nine and a half you want to cut off the open end so that we're left with a pocket but keep the open ends because I'm probably going to make another little funny album with these ends as well so I have cut them let me just bring this in five and three quarters so you're cutting away this end here so five and three quarters like so all right now I've already got all mine but I will keep these because I'll probably do another album but you want six of those okay so I'm going to use both sides then you're going to need 12 pieces of this black card which is four and a quarter five and a half that's right yeah and then they will layer on top and you want 12 pieces because they're going to go on the front and obviously on the back of every page and then you will have your 12 images or pattern paper if you don't have this magazine okay okay so what I'm doing now is just sticking down all of my images or this will be your pattern paper to the black mat so I'm just using my wet glue here and just sticking them down just so you've got that nice even frame around them all and this is when you just want to check that you've got all the right amount so you will end up having your six one two three four five six pages and then your total black mats and pattern paper will be one two three four five six seven eight nine ten eleven twelve okay so get them all stuck down so they're like this okay so I have started to attach my hinges and I am doing acetate hinges something completely new something I just thought up so I'm hoping it's all going to work so this isn't together yet but the idea is is that we're going to put eyelets through this here and then I'm going to make the case and the whole thing's going to be attached with ribbon or string so that's where I've got to so I've already done five of them and I've put my acetate on them all you can just see it there and they've all got their mats on the back and they are looking really really nice so what you're going to need to do is grab some acetate this is quite a flimsy thin acetate sheet and you need to cut it down to one and three quarters by three and three quarters okay so you'll need six of these now mine are covered in glue because I've got my mat covered because I've been using Tombow but I can clean all that off afterwards now what you want to do is grab I'm using the half inch just under half inch actually red tape red tape is really good for acetate and it will stick it really nicely so I'm just going to run I just do that and bring it up so you can see what I've done so I've just ran a strip of it on one of the long sides doesn't matter which side just pop it along there and you can just see okay with any red tape or any double-sided tape make sure you go over it with your bone folder just to get all the air bubbles out and any white kind of cloudy bits that you can see and then it's completely adhered nicely now grab your pocket to your envelope now my grid that I've got here is in half inch increments so I can just sit this anywhere on my grid just line it up with some lines there in the corner down here so I know that that's half an inch here and then that's one inch coming out to this marker here you want to stick this in so it's overhanging by one inch so I can just for example there I've gone past this line and I'm up to this line here so I know that you are sticking roughly but it's not roughly it will be exact you'll be sticking actually onto your envelope three quarters of an inch of the acetate okay now you want to come down and up from the top and bottom make sure it's equal okay don't worry too much if it's not because you're going to then use this as your guide for every other ones everyone will be perfect so I'm coming up there one inch and this is one inch okay so you want to be one inch down here on one inch here if you want to do your acetate from top to bottom you can but I just don't feel there's a need for it plus I like the look at this so I'm just going to take off my backing and so again I can come up one inch here go out one inch that down okay whatever grid you've got if even if it's in centimeters just make sure it's all equal okay so that piece is now stuck down you can see what it looks like okay now next when you do your next envelope so if I bring in did I cut a spare you've got a spare here yeah so say you've got this one here you will then stick that over the top okay and then stick your acetate on this and just line it up with the acetate underneath okay so you don't need to make sure you've got all this measurement correct each time now you can just use that base one as a guide for all your other ones okay so once you stuck your acetate down then you want to stick these mats on top so it just conceals that acetate a little bit so I'm just going to stick that one on there and this is my last one to go on the back I thought the Norway one was nice but it's very dark so I've put it right at the back with something colorful on the front of it okay so I'm just going to stick those two down oh and I forgot to say because I've just gone to stick this one down with this side here just run another bit of red tape just over the top side of your acetate so it will help it stick to your mat there this piece that we're going to stick over the top okay so I've just stuck that down then I put glue all over this and then I can just line it all up there okay so just make sure you and you need to do on one side because on that side there's no acetate it's just normal okay okay so everything is stuck down and all I'm doing is I did have glue and stuff smear just from my fingers on the acetate so just got some tissue and you just buff over it just like you're doing your polishing you make sure you've got the glare of like the daylight on it then you'll be able to see all your marks but now that was the last one I've done they're all back to being really nice clear shiny pieces of acetate so this is now where you should be you should have your six pages or with your acetate hinge so next we will do our hole punching and our eyelet now if you don't have the eyelets it doesn't matter but it does just give it a nice effect so again I've got all these old ones I have brought more but I want to use hope I've got enough I'm gonna use the black because I think it will really stand out so I need 12 okay so I've got 12 black there so what I'm gonna do is just bring one in doesn't matter which one because you can still rearrange the order even after we've done this and it's entirely up to you really when you put it I'm gonna come in let's have a look here I'm just gonna that might have to help it off a little bit depending on your so that on that first one I have come down I'd say an inch an inch from the bottom and then I'll do an inch sorry an inch from the top and then an inch from the bottom so it's about there which is about where I was gonna do it so again this is your first one so just get this as lined up as you can you don't want these to be crooked because otherwise even I'm struggling to see I'm just gonna bring in I guess a bit better just you line up the bottom one you won't have to do this on every one this is just your first one but I'm just gonna do a little just making sure it is the same so that's half an inch and I'm coming in which I think yeah my eyeballing is pretty okay so I'm happy with that so just put a little pin mark there and then I can get that other one cut out okay so you can just see there go my two hole punched holes then grab your next one and sit it under line everything up just like you did when you done your acetate like so I'd make sure your cards are lined up not your acetate okay because if your acetate still a bit out it doesn't matter but make sure your cards are lined up when they're in place just sit it over the hole below actually I think it'd be better over the top because you can then trace it it kind of clips in then like so and just keep doing that on all of your pieces until you have every single one hole punched okay so next we want to make our front and back so I'll kind of front cover a back page as such so I've got these just the chipboard is one mil it's just the card from the back paper packs that I always use and you just want to cut you want two pieces that are six and a quarter by six and a quarter by six and a half okay so you want two pieces then this is the paper from the magazine so I've just I've used two pieces I've already done my front which I'll show you in a minute but I've got the blue which I'm going to cut down in a minute and this pink so I'm going to have the pink as the back page and then the blue is going to be inside so you want to cut it down to well this is eight and one eighth by eight and one eight yeah eight and one eighth squared eight by eight's fine I think it was just that's the it was the the width of the paper but then I cut off kind of the white kind of join where it was joined to the magazine so that's why it's that funny size but eight by eight will be fine grab your chipboard and you just want to stick it into the middle of this okay so either use your wet glue or your tear tape I'm just using mine here I think this is the half inch one so I'm just going to go over it and cover all of this okay so I've covered it all so I'm just making sure it's all stuck down like so and then just peel off all of your backing and then just bring in your paper and just stick it in the middle as long as you've got a rough even amount on each side and again just make sure it's all nicely stuck down and then you just want to fold in all the sides and then we're going to glue in our edges so I've just got my wet glue here you want to kind of come up the side and cover the square there be a little square that's formed where you've kind of got score lines there just you can see there what I just kind of covered come up about an inch there come out an inch there and then just do the square and then you're just gonna bring the square right over so the score lines now line up with your chipboard and just grab your bone folder and just work in all that glue and the chipboard would just absorb it all so make sure you get it all out because then you know you've got a really nice join you can see that what I've done so I've just now burnished in along the chipboard the corner there with the paper to get a nice join so just do that on all of your three corners okay so that's all my corners in and then you just want to apply glue along the rest of the paper that's overhanging get right into the chipboard edge there as well and then you're just gonna fold that whole piece over really get a nice fold around that chipboard and again just burnish it squeezing out any glue and again just repeat that on all three sides okay but my blue piece here I'm just cutting it down so it's six and a quarter by six because remember we're not working with an exact square so just trim that down okay make sure you got the right orientation so obviously one of the sides is six and a quarter by six wasn't it so you just want to make sure you lie it down the right way and it will give you a little border so again it's about 1 eighth of an inch so sorry no it's it's a quarter of an inch we've gone down in increments yeah so one inch eight one eighth of an inch border so that's my back so you will repeat that twice so you've got a front and back now I just got a nice piece of covered chipboard and if I bring in my cover which I'm really pleased with this is what I've done so I'm going to talk you through the eyelets in a minute I have put corner protectors on all four corners because of the style of this album which I have in mind and then there's the other side there this is a nice big mat to obviously put some journaling on which I'm probably going to decorate a bit more but basically I've used the three cards that were left and just cut them down I've put them on some foam that one's stuck directly onto the board this is on foam and then this is stuck on there and then all of these little bits explore adventure the briefcase suitcase even don't take a briefcase on holiday wonderlust and travel are from this sticker set here which is wonder by Jen Allison my mind's eye so I've just used some of that and I think I might use a few more on a couple of the pages as well maybe but I think it looks really really nice so you will have two of these decide which ones your front and back so see I've got all the colors there that I've used from the thing the thing from the set so again make sure it's in the right orientation like so so if you have it that way you'll see see it's taller so just make sure you've got it in the right right way now my holes that I've punched so you will need grab yourself a ruler and you want to come up by two and one-eighth of an inch okay so from the bottom here two and one-eighth of an inch and again two and one-eighth of an inch and then come in three-eighth of an inch okay so do that so if I do it on this bottom one because then what you'll do is you'll just use this once you've done that one you will this is what I'm gonna do with this one is I'm just then gonna put little poke two holes through and then that's easy to do but I'll show you on this one so again make sure the right way so just realize I haven't cut my paper the right way papers now going that way but hey hope doesn't matter so two and one-eighth of an inch and I'm coming in three-eighth of an inch one two three so this is why this Tim Holtzer readers handy because it's got the increments on this side so all I need to do is that one marker there and then again come down and do the same okay and then what I'm gonna do is I'm just gonna line mine over just to check yeah I'm just about there I can see them both through here but I'm just gonna go and line mine up perfectly okay but that's what you want to do there so two and one-eighth two and one-eighth and come in by three-eighth of an inch so now done those grab your you can use a poke tool for this if not but just use the the pliers that you get with your eyelets because they do the job perfectly okay get rid of any of the bulky bits be careful in my paper okay and then I've used silver eyelets so I'm just gonna bring in two silver ones there and bring in my bigger pliers and again just pop them over each of your holes you're working with chipboard so you do have to really work them in there but then you'll get a nice there we go kind of pop in okay and then just squash them down okay so you should now have you have a front and back with the eyelets like so so when they're together let they perfectly meet up now I can see you can kind of see my hand moving underneath so it's looking really neat now I know I'll move on to the next bit so now I'm gonna add some I've added in an extra so I'm adding in these pages so these here so it's now going to turn into yes these are six by six and I've got one two three four five six okay and the idea is there's gonna be you're gonna open the page to one of these first and then you're gonna have one of these behind and then another one of these behind and then another page and I just I don't know this is what happens when I just think of things to do I just like the thought of having this with a pocket here which we're gonna make our mats for and then you turn the page and then you've just got a bigger mat there to have even more photos so six pieces of six by six and then you want to mark your holes all along them here which I've done so with these ones here you want to come in so I'm coming in by a quarter of an inch and you're coming up here from two inches okay so come in quarter of an inch and then come up by two inches and mark a little hole and just use your pliers again punch through again come down two inches and come in at a quarter that's the same there so if you if your measurements slightly different to mine get your piece of card so if I do the bit I haven't lie it over it's six by six so it doesn't really matter lie it over and then just put a little marker like so okay and punch your holes through that way then once you've punched your holes through use that one again as a guide so I'm going to pop it on the top front of this one seems a little bit different than six by six no it is that way and then just punch through so again you're tracing that circle so you don't have to do the measurement on every single card okay so do that on all six pieces and then again I'm now going to punch my eyelets through all of them hoping that I've got enough silver pieces which I think I do so yeah just like you did on your front just go through now again if you don't have them you might have those little plastic circle stickers that you put on your punched holes which another they have perfectly fine to use so it's just to really kind of protect them from being turned all the time okay so they are now all done they've all got their eyelets on them now one thing I needed to mention which I almost forgot is because the where the eyelets are positioned because I didn't want to go into my image too much because I stuck this down first before I put the eyelets I've had to trim my acetate and basically I've taken a quarter of an inch where's my scissors I use my red ones I've taken a quarter of an inch off the side the outer side okay so I'm gonna eyeball it because I can roughly see on this one and I've just trimmed it off okay so it's easy to do otherwise you get it overhanging all right but that's because I didn't I decorated it first so what I would say is if you're confident you know what you're doing line up your pages and imagine that quarter of an inch was still on there okay and then just do a pencil mark where the eyelet sits you can see the difference now from where the eyelet is now if this piece still had the quarter of an inch that's where your page would be that's where your holes would be sorry so the card still fits in this doesn't interfere with any of these pieces but if you don't want to cut your acetate you think oh no I think I'm gonna mess it all up then just bring these in by a quarter of an inch or the proper position that it should be if I do it that way it's probably confusing you so if you imagine there go that's where it would be I brought it in by a quarter of an inch just do your pencil marks and then you know where to punch it okay hopefully that's made sense but I've had to just cut mine and bring them in a little bit so this is how it's going to be one of these and then a pay yeah then another one then a page another one another one page page and then it ends with a page okay so they're all in like so and they're going to be sandwiched between that and that so you big it's turned into quite a nice little size little album now so I will do the mats and I'm not sure yet whether I'm going to be using ribbon or these binder hoops binder rings okay so I'm still working on that but now we need our mats okay so I'm gonna have black mats on all of my pages so I've cut these pieces here which are five and a quarter by five and three quarters okay I've already stuck one down on the back there I've already popped all my tape on this one and I've done my other six pages so you're going to need 12 pieces of this particular size in obviously whatever colour it is that you're using you may not want to you may want to you may choose to just put your photos directly onto your card it's entirely up to you so but the this particular craft card that I use which is 280 GSM it's the Dewcrafts brand it's very strong so it would be fine on its own but I do like to add my mats now you might want to layer on top of this again so it's entirely up to you so you should now have six of them that's all of mine and what I've started doing so I've got one page sorry one of these little pockets then a page pocket page and so on all the way through I've got my front cover and I've got my back so what I'm going to do is just pop it through some of these ring binder rings and just see how it looks and then I can decide whether I want to use ribbon and then I'm going to talk you through all of the little paper mats that we're going to have coming out of the tops of all of these little pockets okay so that's it there with the little binder rings another size that I've used which is actually perfect is one and one and a quarter yeah one and a quarter one and three eight diameter look how lovely that now looks I think what I might just do is tie some ribbon in a bow just on there just to make it look nice and now when it opens up and you've got room as well for any bulky you know any pictures and stuff so and it doesn't move about too much which is good so these are going to look great and I'm going to print all my pictures in Polaroid so they're all going to have a white frame anyway so the white against the blacks are going to really stand out and obviously these are just so strong with that acetate and with the ringlets ringlets with the eyelets around them this is you know it's going to last you forever it's not gonna I might put corner edges protectors on this base I'm not sure I guess I should really I don't think I've got any left of those ones which have got quite an art deco look which is why I thought it worked really nice so I have some plain ones which I probably put on the back but these two are going to look lovely to just have you know just some journaling on and then I might put like I've got lots of flight tickets and things like that which I can pop in these so now I'm going to make all the little mats paper mats photo mats for them okay so to make those little photo mats I'm just cutting from the scraps from the actual pages so they came from A4 cards so this is just part of that so I'm again trying to use all the bits that I have and not cutting to unnecessary pieces so these are four by four by five and five eighths of an inch and you'll need six of those now if you want a mat and layer on top of these you can I'm not going to I'm just gonna put my photo probably smack bang on there then what I've gone and done is I've die-cut 12 of these two-inch circles and then 12 of these which are one and a half and I'm gonna pop these punches a little blunt but basically one's gonna go over the front one's gonna go over the back like so and then one of them on the front and one of those on the back and you want to stick it halfway down so half of your circle is stuck on the card and then I've got all that there for my polaroid photo excuse me my voice is starting to lose my voice okay so I'm just grabbing some of my glue just splodge it on one side like so grab your card pop it halfway on and just make sure you've got equal amounts over hanging and then we'll get my other circle you only really need to put glue on one half but just put it all on it doesn't really matter and line it up with the top half and then the rest will all work itself out like so and then just stick these on top now if you want to round off the bottom because that will help your photo mat go in and out of the pocket and then I'll bring in my album I've already done my other six photo mats so you can see now I find the one that I need to pop this in I think it's right at the back it is and then that one can slide perfectly in the top of my pocket it just pokes out the top so I've gone and popped all the rest in and that is all ready now for me to add my photos so I'm going to choose a holiday that I need to print the photos of and pop in a scrapbook so somewhere in Europe I think and I'm gonna fill it and I think it's gonna look really good because I know how many photos I can probably get two on here on each of these so each page is gonna hold four then each photo mat holds one on each side so yeah I can get quite a few photos in this but I really really love it so there's a close-up again of the front cover I'm gonna tie some ribbon on this which you'll see in the photos maybe have a little dangle hanging from it you can also hole punch these stick an eyelet in there as well and then pop some ribbon through which I've done on other albums and I'm probably gonna put my little corners on the back but I think in terms of the tutorial I've shown you everything you need to make your own little acetate tinge ring binder mini travel album with envelopes I don't know what to call it anyway there you have it so I hope you've enjoyed this tutorial if you have please hit the thumbs up button and subscribe to my channel to see more thanks for watching