1 diff -Naur mp4v2-trunk-r355/include/mp4v2/general.h mp4v2-trunk-r355/include/mp4v2/general.h
2 --- mp4v2-trunk-r355/include/mp4v2/general.h 2009-05-23 06:09:58.000000000 -0700
3 +++ mp4v2-trunk-r355/include/mp4v2/general.h 2010-05-23 14:22:21.949288657 -0700
5 #define MP4_CNTL_TRACK_TYPE "cntl" /**< Constant: control track. */
6 #define MP4_TEXT_TRACK_TYPE "text" /**< Constant: text track. */
7 #define MP4_SUBTITLE_TRACK_TYPE "sbtl" /**< Constant: subtitle track. */
8 +#define MP4_SUBPIC_TRACK_TYPE "subp" /**< Constant: subtitle track. */
10 * This second set of track types should be created
11 * via MP4AddSystemsTrack(type)
12 diff -Naur mp4v2-trunk-r355/include/mp4v2/track.h mp4v2-trunk-r355/include/mp4v2/track.h
13 --- mp4v2-trunk-r355/include/mp4v2/track.h 2009-05-23 06:21:49.000000000 -0700
14 +++ mp4v2-trunk-r355/include/mp4v2/track.h 2010-05-23 15:43:47.249286008 -0700
19 +MP4TrackId MP4AddSubpicTrack(
20 + MP4FileHandle hFile,
26 MP4TrackId MP4AddPixelAspectRatio(
28 MP4TrackId refTrackId,
29 diff -Naur mp4v2-trunk-r355/src/descriptors.h mp4v2-trunk-r355/src/descriptors.h
30 --- mp4v2-trunk-r355/src/descriptors.h 2009-05-20 19:52:32.000000000 -0700
31 +++ mp4v2-trunk-r355/src/descriptors.h 2010-05-23 16:29:34.800935677 -0700
34 const uint8_t MP4SystemsV1ObjectType = 0x01;
35 const uint8_t MP4SystemsV2ObjectType = 0x02;
36 +const uint8_t MP4SubpicObjectType = 0xe0;
39 const uint8_t MP4ObjectDescriptionStreamType = 0x01;
41 const uint8_t MP4OCIStreamType = 0x08;
42 const uint8_t MP4MPEGJStreamType = 0x09;
43 const uint8_t MP4UserPrivateStreamType = 0x20;
44 +const uint8_t MP4NeroSubpicStreamType = 0x38;
46 ///////////////////////////////////////////////////////////////////////////////
48 diff -Naur mp4v2-trunk-r355/src/mp4.cpp mp4v2-trunk-r355/src/mp4.cpp
49 --- mp4v2-trunk-r355/src/mp4.cpp 2009-05-23 06:29:37.000000000 -0700
50 +++ mp4v2-trunk-r355/src/mp4.cpp 2010-05-23 15:45:28.852222074 -0700
51 @@ -1174,6 +1174,23 @@
52 return MP4_INVALID_TRACK_ID;
55 + MP4TrackId MP4AddSubpicTrack(MP4FileHandle hFile,
60 + if (MP4_IS_VALID_FILE_HANDLE(hFile)) {
62 + return ((MP4File*)hFile)->AddSubpicTrack(timescale, width, height);
64 + catch (MP4Error* e) {
69 + return MP4_INVALID_TRACK_ID;
72 MP4TrackId MP4AddChapterTextTrack(
73 MP4FileHandle hFile, MP4TrackId refTrackId, uint32_t timescale)
75 diff -Naur mp4v2-trunk-r355/src/mp4file.cpp mp4v2-trunk-r355/src/mp4file.cpp
76 --- mp4v2-trunk-r355/src/mp4file.cpp 2009-05-26 19:34:56.000000000 -0700
77 +++ mp4v2-trunk-r355/src/mp4file.cpp 2010-05-23 16:32:52.654220633 -0700
78 @@ -2095,6 +2095,50 @@
82 +MP4TrackId MP4File::AddSubpicTrack(uint32_t timescale,
86 + MP4TrackId trackId =
87 + AddTrack(MP4_SUBPIC_TRACK_TYPE, timescale);
89 + InsertChildAtom(MakeTrackName(trackId, "mdia.minf"), "nmhd", 0);
91 + (void)AddChildAtom(MakeTrackName(trackId, "mdia.minf.stbl.stsd"), "mp4s");
93 + SetTrackFloatProperty(trackId, "tkhd.width", width);
94 + SetTrackFloatProperty(trackId, "tkhd.height", height);
95 + SetTrackIntegerProperty(trackId, "tkhd.layer", 0);
97 + // stsd is a unique beast in that it has a count of the number
98 + // of child atoms that needs to be incremented after we add the mp4s atom
99 + MP4Integer32Property* pStsdCountProperty;
100 + FindIntegerProperty(
101 + MakeTrackName(trackId, "mdia.minf.stbl.stsd.entryCount"),
102 + (MP4Property**)&pStsdCountProperty);
103 + pStsdCountProperty->IncrementValue();
105 + SetTrackIntegerProperty(trackId,
106 + "mdia.minf.stbl.stsd.mp4s.esds.ESID",
108 + // note - for a file, these values need to
109 + // be 0 - wmay - 04/16/2003
116 + SetTrackIntegerProperty(trackId,
117 + "mdia.minf.stbl.stsd.mp4s.esds.decConfigDescr.objectTypeId",
118 + MP4SubpicObjectType);
120 + SetTrackIntegerProperty(trackId,
121 + "mdia.minf.stbl.stsd.mp4s.esds.decConfigDescr.streamType",
122 + MP4NeroSubpicStreamType);
126 MP4TrackId MP4File::AddChapterTextTrack(MP4TrackId refTrackId, uint32_t timescale)
128 // validate reference track id
129 diff -Naur mp4v2-trunk-r355/src/mp4file.h mp4v2-trunk-r355/src/mp4file.h
130 --- mp4v2-trunk-r355/src/mp4file.h 2009-05-23 06:29:37.000000000 -0700
131 +++ mp4v2-trunk-r355/src/mp4file.h 2010-05-23 15:44:57.568026299 -0700
136 + MP4TrackId AddSubpicTrack(uint32_t timescale,
140 MP4TrackId AddPixelAspectRatio(MP4TrackId trackId, uint32_t hSpacing, uint32_t vSpacing);
141 MP4TrackId AddColr(MP4TrackId trackId, uint16_t pri, uint16_t tran, uint16_t mat);