mp4v2: 1.9.1p4 -> 2.0.0
This commit is contained in:
parent
e868669c4a
commit
ceac00d82b
@ -1,142 +0,0 @@
|
|||||||
diff -Naur mp4v2-trunk-r355/include/mp4v2/general.h mp4v2-trunk-r355/include/mp4v2/general.h
|
|
||||||
--- mp4v2-trunk-r355/include/mp4v2/general.h 2009-05-23 06:09:58.000000000 -0700
|
|
||||||
+++ mp4v2-trunk-r355/include/mp4v2/general.h 2010-05-23 14:22:21.949288657 -0700
|
|
||||||
@@ -75,6 +75,7 @@
|
|
||||||
#define MP4_CNTL_TRACK_TYPE "cntl" /**< Constant: control track. */
|
|
||||||
#define MP4_TEXT_TRACK_TYPE "text" /**< Constant: text track. */
|
|
||||||
#define MP4_SUBTITLE_TRACK_TYPE "sbtl" /**< Constant: subtitle track. */
|
|
||||||
+#define MP4_SUBPIC_TRACK_TYPE "subp" /**< Constant: subtitle track. */
|
|
||||||
/*
|
|
||||||
* This second set of track types should be created
|
|
||||||
* via MP4AddSystemsTrack(type)
|
|
||||||
diff -Naur mp4v2-trunk-r355/include/mp4v2/track.h mp4v2-trunk-r355/include/mp4v2/track.h
|
|
||||||
--- mp4v2-trunk-r355/include/mp4v2/track.h 2009-05-23 06:21:49.000000000 -0700
|
|
||||||
+++ mp4v2-trunk-r355/include/mp4v2/track.h 2010-05-23 15:43:47.249286008 -0700
|
|
||||||
@@ -310,6 +310,13 @@
|
|
||||||
uint16_t height );
|
|
||||||
|
|
||||||
MP4V2_EXPORT
|
|
||||||
+MP4TrackId MP4AddSubpicTrack(
|
|
||||||
+ MP4FileHandle hFile,
|
|
||||||
+ uint32_t timescale,
|
|
||||||
+ uint16_t width,
|
|
||||||
+ uint16_t height );
|
|
||||||
+
|
|
||||||
+MP4V2_EXPORT
|
|
||||||
MP4TrackId MP4AddPixelAspectRatio(
|
|
||||||
MP4FileHandle hFile,
|
|
||||||
MP4TrackId refTrackId,
|
|
||||||
diff -Naur mp4v2-trunk-r355/src/descriptors.h mp4v2-trunk-r355/src/descriptors.h
|
|
||||||
--- mp4v2-trunk-r355/src/descriptors.h 2009-05-20 19:52:32.000000000 -0700
|
|
||||||
+++ mp4v2-trunk-r355/src/descriptors.h 2010-05-23 16:29:34.800935677 -0700
|
|
||||||
@@ -119,6 +119,7 @@
|
|
||||||
// ES objectTypeId
|
|
||||||
const uint8_t MP4SystemsV1ObjectType = 0x01;
|
|
||||||
const uint8_t MP4SystemsV2ObjectType = 0x02;
|
|
||||||
+const uint8_t MP4SubpicObjectType = 0xe0;
|
|
||||||
|
|
||||||
// ES streamType
|
|
||||||
const uint8_t MP4ObjectDescriptionStreamType = 0x01;
|
|
||||||
@@ -131,6 +132,7 @@
|
|
||||||
const uint8_t MP4OCIStreamType = 0x08;
|
|
||||||
const uint8_t MP4MPEGJStreamType = 0x09;
|
|
||||||
const uint8_t MP4UserPrivateStreamType = 0x20;
|
|
||||||
+const uint8_t MP4NeroSubpicStreamType = 0x38;
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
diff -Naur mp4v2-trunk-r355/src/mp4.cpp mp4v2-trunk-r355/src/mp4.cpp
|
|
||||||
--- mp4v2-trunk-r355/src/mp4.cpp 2009-05-23 06:29:37.000000000 -0700
|
|
||||||
+++ mp4v2-trunk-r355/src/mp4.cpp 2010-05-23 15:45:28.852222074 -0700
|
|
||||||
@@ -1174,6 +1174,23 @@
|
|
||||||
return MP4_INVALID_TRACK_ID;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ MP4TrackId MP4AddSubpicTrack(MP4FileHandle hFile,
|
|
||||||
+ uint32_t timescale,
|
|
||||||
+ uint16_t width,
|
|
||||||
+ uint16_t height)
|
|
||||||
+ {
|
|
||||||
+ if (MP4_IS_VALID_FILE_HANDLE(hFile)) {
|
|
||||||
+ try {
|
|
||||||
+ return ((MP4File*)hFile)->AddSubpicTrack(timescale, width, height);
|
|
||||||
+ }
|
|
||||||
+ catch (MP4Error* e) {
|
|
||||||
+ PRINT_ERROR(e);
|
|
||||||
+ delete e;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ return MP4_INVALID_TRACK_ID;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
MP4TrackId MP4AddChapterTextTrack(
|
|
||||||
MP4FileHandle hFile, MP4TrackId refTrackId, uint32_t timescale)
|
|
||||||
{
|
|
||||||
diff -Naur mp4v2-trunk-r355/src/mp4file.cpp mp4v2-trunk-r355/src/mp4file.cpp
|
|
||||||
--- mp4v2-trunk-r355/src/mp4file.cpp 2009-05-26 19:34:56.000000000 -0700
|
|
||||||
+++ mp4v2-trunk-r355/src/mp4file.cpp 2010-05-23 16:32:52.654220633 -0700
|
|
||||||
@@ -2095,6 +2095,50 @@
|
|
||||||
return trackId;
|
|
||||||
}
|
|
||||||
|
|
||||||
+MP4TrackId MP4File::AddSubpicTrack(uint32_t timescale,
|
|
||||||
+ uint16_t width,
|
|
||||||
+ uint16_t height)
|
|
||||||
+{
|
|
||||||
+ MP4TrackId trackId =
|
|
||||||
+ AddTrack(MP4_SUBPIC_TRACK_TYPE, timescale);
|
|
||||||
+
|
|
||||||
+ InsertChildAtom(MakeTrackName(trackId, "mdia.minf"), "nmhd", 0);
|
|
||||||
+
|
|
||||||
+ (void)AddChildAtom(MakeTrackName(trackId, "mdia.minf.stbl.stsd"), "mp4s");
|
|
||||||
+
|
|
||||||
+ SetTrackFloatProperty(trackId, "tkhd.width", width);
|
|
||||||
+ SetTrackFloatProperty(trackId, "tkhd.height", height);
|
|
||||||
+ SetTrackIntegerProperty(trackId, "tkhd.layer", 0);
|
|
||||||
+
|
|
||||||
+ // stsd is a unique beast in that it has a count of the number
|
|
||||||
+ // of child atoms that needs to be incremented after we add the mp4s atom
|
|
||||||
+ MP4Integer32Property* pStsdCountProperty;
|
|
||||||
+ FindIntegerProperty(
|
|
||||||
+ MakeTrackName(trackId, "mdia.minf.stbl.stsd.entryCount"),
|
|
||||||
+ (MP4Property**)&pStsdCountProperty);
|
|
||||||
+ pStsdCountProperty->IncrementValue();
|
|
||||||
+
|
|
||||||
+ SetTrackIntegerProperty(trackId,
|
|
||||||
+ "mdia.minf.stbl.stsd.mp4s.esds.ESID",
|
|
||||||
+#if 0
|
|
||||||
+ // note - for a file, these values need to
|
|
||||||
+ // be 0 - wmay - 04/16/2003
|
|
||||||
+ trackId
|
|
||||||
+#else
|
|
||||||
+ 0
|
|
||||||
+#endif
|
|
||||||
+ );
|
|
||||||
+
|
|
||||||
+ SetTrackIntegerProperty(trackId,
|
|
||||||
+ "mdia.minf.stbl.stsd.mp4s.esds.decConfigDescr.objectTypeId",
|
|
||||||
+ MP4SubpicObjectType);
|
|
||||||
+
|
|
||||||
+ SetTrackIntegerProperty(trackId,
|
|
||||||
+ "mdia.minf.stbl.stsd.mp4s.esds.decConfigDescr.streamType",
|
|
||||||
+ MP4NeroSubpicStreamType);
|
|
||||||
+ return trackId;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
MP4TrackId MP4File::AddChapterTextTrack(MP4TrackId refTrackId, uint32_t timescale)
|
|
||||||
{
|
|
||||||
// validate reference track id
|
|
||||||
diff -Naur mp4v2-trunk-r355/src/mp4file.h mp4v2-trunk-r355/src/mp4file.h
|
|
||||||
--- mp4v2-trunk-r355/src/mp4file.h 2009-05-23 06:29:37.000000000 -0700
|
|
||||||
+++ mp4v2-trunk-r355/src/mp4file.h 2010-05-23 15:44:57.568026299 -0700
|
|
||||||
@@ -388,6 +388,10 @@
|
|
||||||
uint16_t width,
|
|
||||||
uint16_t height);
|
|
||||||
|
|
||||||
+ MP4TrackId AddSubpicTrack(uint32_t timescale,
|
|
||||||
+ uint16_t width,
|
|
||||||
+ uint16_t height);
|
|
||||||
+
|
|
||||||
MP4TrackId AddPixelAspectRatio(MP4TrackId trackId, uint32_t hSpacing, uint32_t vSpacing);
|
|
||||||
MP4TrackId AddColr(MP4TrackId trackId, uint16_t pri, uint16_t tran, uint16_t mat);
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
|||||||
--- mp4v2-r355/src/mp4track.cpp 2012-01-05 15:44:29.000000000 +0100
|
|
||||||
+++ mp4v2-r355/src/mp4track.cpp 2012-01-05 15:47:34.000000000 +0100
|
|
||||||
@@ -819,13 +819,14 @@
|
|
||||||
(thisSecStart + timeScale) - lastSampleTime;
|
|
||||||
// calculate the duration of the last sample
|
|
||||||
MP4Duration lastSampleDur = sampleTime - lastSampleTime;
|
|
||||||
- uint32_t overflow_bytes;
|
|
||||||
// now, calculate the number of bytes we overflowed. Round up.
|
|
||||||
- overflow_bytes =
|
|
||||||
- ((lastSampleSize * overflow_dur) + (lastSampleDur - 1)) / lastSampleDur;
|
|
||||||
+ if( lastSampleDur > 0 ) {
|
|
||||||
+ uint32_t overflow_bytes = 0;
|
|
||||||
+ overflow_bytes = ((lastSampleSize * overflow_dur) + (lastSampleDur - 1)) / lastSampleDur;
|
|
||||||
|
|
||||||
- if (bytesThisSec - overflow_bytes > maxBytesPerSec) {
|
|
||||||
- maxBytesPerSec = bytesThisSec - overflow_bytes;
|
|
||||||
+ if (bytesThisSec - overflow_bytes > maxBytesPerSec) {
|
|
||||||
+ maxBytesPerSec = bytesThisSec - overflow_bytes;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
// now adjust the values for this sample. Remove the bytes
|
|
@ -1,11 +0,0 @@
|
|||||||
--- mp4v2-trunk-r355/include/mp4v2/platform.h 2009-05-20 19:52:26.000000000 -0700
|
|
||||||
+++ xxx/include/mp4v2/platform.h 2010-09-11 09:36:20.881523832 -0700
|
|
||||||
@@ -24,7 +24,7 @@
|
|
||||||
#if defined( _WIN32 ) || defined( __MINGW32__ )
|
|
||||||
# if defined( _WINDLL ) || defined( DLL_EXPORT )
|
|
||||||
# define MP4V2_EXPORT __declspec(dllexport)
|
|
||||||
-# elif defined( _DLL ) || defined( DLL_IMPORT )
|
|
||||||
+# elif defined( DLL_IMPORT )
|
|
||||||
# define MP4V2_EXPORT __declspec(dllimport)
|
|
||||||
# else
|
|
||||||
# define MP4V2_EXPORT
|
|
@ -1,18 +1,17 @@
|
|||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchurl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "mp4v2-1.9.1p4";
|
name = "mp4v2-2.0.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://mp4v2.googlecode.com/files/${name}.tar.bz2";
|
url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/mp4v2/${name}.tar.bz2";
|
||||||
sha256 = "1d73qbi0faqad3bpmjfr4kk0mfmqpl1f43ysrx4gq9i3mfp1qf2w";
|
sha256 = "0f438bimimsvxjbdp4vsr8hjw2nwggmhaxgcw07g2z361fkbj683";
|
||||||
};
|
};
|
||||||
|
|
||||||
# From Handbrake
|
# From Handbrake
|
||||||
# mp4v2 doesn't seem to be actively maintained any more :-/
|
# mp4v2 doesn't seem to be actively maintained any more :-/
|
||||||
patches = [
|
patches = [
|
||||||
./A00-nero-vobsub.patch ./A01-divide-zero.patch ./A02-meaningful-4gb-warning.patch
|
./A02-meaningful-4gb-warning.patch
|
||||||
./P00-mingw-dllimport.patch
|
|
||||||
];
|
];
|
||||||
# `faac' expects `mp4.h'.
|
# `faac' expects `mp4.h'.
|
||||||
postInstall = "ln -s mp4v2/mp4v2.h $out/include/mp4.h";
|
postInstall = "ln -s mp4v2/mp4v2.h $out/include/mp4.h";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user