CuteLogger
Fast and simple logging solution for Qt based applications
mpeg4_container.h
1#pragma once
2/*****************************************************************************
3 *
4 * Copyright 2016 Varol Okan. All rights reserved.
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 ****************************************************************************/
19
20// MPEG4 processing classes.
21//
22// Functions for loading MP4/MOV files and manipulating boxes.
23
24#include "constants.h"
25#include "container.h"
26#include "box.h"
27
28class Mpeg4Container : public Container
29{
30 public:
31 Mpeg4Container ( );
32 virtual ~Mpeg4Container ( );
33
34 static Mpeg4Container *load ( std::fstream & ); //, uint32_t iPos, uint32_t iEnd );
35
36 void merge ( Box * );
37 virtual void print_structure ( const char *p="" );
38 virtual void save ( std::fstream &, std::fstream &, int32_t );
39
40public:
41 Box *m_pMoovBox;
42 Box *m_pFreeBox;
43 Box *m_pFTYPBox;
44 Mpeg4Container *m_pFirstMDatBox;
45 uint32_t m_iFirstMDatPos;
46};
47