jdzyzh / mp4v2 Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/mp4v2
License: Other
Automatically exported from code.google.com/p/mp4v2
License: Other
All docs are located in doc/ subdirectory. Useful starting points: Release Notes -- doc/ReleaseNotes.txt Building the Source -- doc/BuildSource.txt Building the Repository -- doc/BuildRepository.txt
The test suite (i.e. make test, not that it does anything usefull, but
abyway) currently fails because of a faulty variable assignment in line 231
in GNUmakefile.am:
"TESTLOGDIR = $(builddir)/testlog", where $(builddir) is an empty string
leading to "mkdir -p /testlog" in line 309 which of course fails. The
correct variable is called "$(top_builddir)", so please run "sed
'/TESTLOGDIR/s/builddir/top_builddir/'" on GNUmakefile.am.
Original issue reported on code.google.com by [email protected]
on 30 Oct 2009 at 12:37
What steps will reproduce the problem?
1. Note bit rate of purchased iTunes song. In this case, 256 kbps.
2. Change or add release date to song. (…or title, or possibly any other
tag, as well, but I have not tested that.)
3. iTunes now reads the bit rate differently. Sometimes it's as little as a
change from 256 kbps to 258, sometimes it's from 256 to 189.
What is the expected output? What do you see instead?
I would expect the bit rate to stay the same. Instead, it changes.
What version of the product are you using? On what operating system?
mp4v2-trunk-r369 on OSX 10.6.
Please provide any additional information below.
Call me picky, but this drives me cuh-ray-zee.
Original issue reported on code.google.com by [email protected]
on 10 Sep 2009 at 6:56
To provide apps a way to get log information instead of sending it to
stdout via the VERBOSE_* macros, create a Log class that supports the
following levels:
enum MP4LogLevel {
MP4LogError = 1,
MP4LogWarning = 2,
MP4LogInfo = 3,
MP4LogVerbose1 = 4,
MP4LogVerbose2 = 5,
MP4LogVerbose3 = 6,
MP4LogVerbose4 = 7
}
A new API function MP4SetLogCallback allows users to set the callback
function, which has signature something like
typedef void (*log_message_cb_func_t)(
MP4LogLevel loglevel,
const char* fmt,
... );
-DB
Original issue reported on code.google.com by [email protected]
on 2 Feb 2009 at 9:56
I was trying to build gtkpod with mp4v2 1.9.0. It fails, as the
MP4SetMetaData functions were removed. The release notes said it would be
API compatible.
Original issue reported on code.google.com by [email protected]
on 28 May 2009 at 10:01
As egroenen requested in
https://sourceforge.net/projects/mpeg4ip/forums/forum/59136/topic/2427643
here are some patches for bugs in mpeg4ip-1.6.1
--- C:/Users/dev/AppData/Local/Temp/mp4util.cpp Wed Dec 9 16:17:56 2009
+++ C:/Builds/Work/project/trunk/External/mpeg4ip-
1.6.1/lib/mp4v2/mp4util.cpp Tue Dec 8 17:52:18 2009
@@ -89,7 +89,7 @@
if (*s2 == '\0' || strchr("[.", *s2)) {
break;
}
- if (tolower(*s1) != tolower(*s2)) {
+ if (tolower((unsigned char)*s1) != tolower((unsigned char)
*s2)) {
return false;
}
s1++;
--- C:/Users/dev/AppData/Local/Temp/atom_hdlr.cpp Wed Dec 9 16:18:31 2009
+++ C:/Builds/Work/project/trunk/External/mpeg4ip-
1.6.1/lib/mp4v2/atom_hdlr.cpp Tue Dec 8 17:52:18 2009
@@ -46,6 +46,12 @@
uint64_t end = GetEnd();
if (pos == end) return;
+ // A hdlr atom with missing "name".
+ // Apparently that's what some of the iTunes m4p files have.
+ if (m_pFile->GetPosition() == GetEnd()) {
+ return;
+ }
+
// take a peek at the next byte
u_int8_t strLength;
m_pFile->PeekBytes(&strLength, 1);
--- C:/Users/dev/AppData/Local/Temp/mp4atom.cpp Wed Dec 9 16:19:02 2009
+++ C:/Builds/Work/project/trunk/External/mpeg4ip-
1.6.1/lib/mp4v2/mp4atom.cpp Tue Dec 8 17:52:18 2009
@@ -406,7 +406,13 @@
pAtom->SetParentAtom(pParentAtom);
- pAtom->Read();
+ try {
+ pAtom->Read();
+ }
+ catch (MP4Error* e) {
+ delete pAtom;
+ throw e;
+ }
return pAtom;
}
@@ -414,7 +420,7 @@
bool MP4Atom::IsReasonableType(const char* type)
{
for (u_int8_t i = 0; i < 4; i++) {
- if (isalnum(type[i])) {
+ if (isalnum((unsigned char)type[i])) {
continue;
}
if (i == 3 && type[i] == ' ') {
Original issue reported on code.google.com by [email protected]
on 10 Dec 2009 at 12:36
We use gcc in "strict" mode per our coding standards. In this mode, one
minor issue in mp4v2 gets flagged:
/** Enumeration of file modes for custom file provider. */
typedef enum MP4FileMode_e
{
FILEMODE_UNDEFINED, /**< undefined */
FILEMODE_READ, /**< file may be read */
FILEMODE_MODIFY, /**< file may be read/written */
FILEMODE_CREATE, /**< file will be created/truncated for read/write */
} MP4FileMode;
The issue is the trailing common after FILEMODE_CREATE. It needs to be:
/** Enumeration of file modes for custom file provider. */
typedef enum MP4FileMode_e
{
FILEMODE_UNDEFINED, /**< undefined */
FILEMODE_READ, /**< file may be read */
FILEMODE_MODIFY, /**< file may be read/written */
FILEMODE_CREATE /**< file will be created/truncated for read/write */
} MP4FileMode;
Here are the guys with trailing commas:
/** Enumeration of file modes for custom file provider. */
typedef enum MP4FileMode_e
{
FILEMODE_UNDEFINED, /**< undefined */
FILEMODE_READ, /**< file may be read */
FILEMODE_MODIFY, /**< file may be read/written */
FILEMODE_CREATE, /**< file will be created/truncated for read/write */
} MP4FileMode;
/** Enumeration of possible MP4TagArtwork::type values. */
typedef enum MP4TagArtworkType_e
{
MP4_ART_UNDEFINED = 0,
MP4_ART_BMP = 1,
MP4_ART_GIF = 2,
MP4_ART_JPEG = 3,
MP4_ART_PNG = 4,
} MP4TagArtworkType;
/** Sample dependency types.
*
* Bit combinations 0x03, 0x30, 0xc0 are reserved.
*/
typedef enum MP4SampleDependencyType_e {
MP4_SDT_UNKNOWN = 0x00, /**< unknown */
MP4_SDT_HAS_REDUNDANT_CODING = 0x01, /**< contains redundant
coding */
MP4_SDT_HAS_NO_REDUNDANT_CODING = 0x02, /**< does not contain
redundant coding */
MP4_SDT_HAS_DEPENDENTS = 0x04, /**< referenced by other
samples */
MP4_SDT_HAS_NO_DEPENDENTS = 0x08, /**< not referenced by
other samples */
MP4_SDT_IS_DEPENDENT = 0x10, /**< references other
samples */
MP4_SDT_IS_INDEPENDENT = 0x20, /**< does not reference
other samples */
MP4_SDT_EARLIER_DISPLAY_TIMES_ALLOWED = 0x40, /**< subequent samples in
GOP may display earlier */
_MP4_SDT_RESERVED = 0x80, /**< reserved */
} MP4SampleDependencyType;
/** Enumeration of file modes for custom file provider. */
typedef enum MP4FileMode_e
{
FILEMODE_UNDEFINED, /**< undefined */
FILEMODE_READ, /**< file may be read */
FILEMODE_MODIFY, /**< file may be read/written */
FILEMODE_CREATE, /**< file will be created/truncated for read/write */
} MP4FileMode;
/** Enumeration of possible MP4TagArtwork::type values. */
typedef enum MP4TagArtworkType_e
{
MP4_ART_UNDEFINED = 0,
MP4_ART_BMP = 1,
MP4_ART_GIF = 2,
MP4_ART_JPEG = 3,
MP4_ART_PNG = 4,
} MP4TagArtworkType;
/** Sample dependency types.
*
* Bit combinations 0x03, 0x30, 0xc0 are reserved.
*/
typedef enum MP4SampleDependencyType_e {
MP4_SDT_UNKNOWN = 0x00, /**< unknown */
MP4_SDT_HAS_REDUNDANT_CODING = 0x01, /**< contains redundant
coding */
MP4_SDT_HAS_NO_REDUNDANT_CODING = 0x02, /**< does not contain
redundant coding */
MP4_SDT_HAS_DEPENDENTS = 0x04, /**< referenced by other
samples */
MP4_SDT_HAS_NO_DEPENDENTS = 0x08, /**< not referenced by
other samples */
MP4_SDT_IS_DEPENDENT = 0x10, /**< references other
samples */
MP4_SDT_IS_INDEPENDENT = 0x20, /**< does not reference
other samples */
MP4_SDT_EARLIER_DISPLAY_TIMES_ALLOWED = 0x40, /**< subequent samples in
GOP may display earlier */
_MP4_SDT_RESERVED = 0x80, /**< reserved */
} MP4SampleDependencyType;
It's a very minor issue, but it would be a big help to fix it. ;) Thanks!
Original issue reported on code.google.com by [email protected]
on 8 Dec 2009 at 5:35
What steps will reproduce the problem?
1. Install dejagnu application
2. ./configure
3. make
4. make check
What is the expected output? What do you see instead?
make -j5 -j1 check
make
make[1]: Entering directory
`/var/tmp/portage/media-libs/libmp4v2-1.9.1/work/mp4v2-1.9.1'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory
`/var/tmp/portage/media-libs/libmp4v2-1.9.1/work/mp4v2-1.9.1'
make check-DEJAGNU
make[1]: Entering directory
`/var/tmp/portage/media-libs/libmp4v2-1.9.1/work/mp4v2-1.9.1'
touch Makefile
mkdir -p -- /testlog
mkdir: cannot create directory `/testlog': Permission denied
make[1]: *** [Makefile] Error 1
make[1]: Leaving directory
`/var/tmp/portage/media-libs/libmp4v2-1.9.1/work/mp4v2-1.9.1'
make: *** [check-am] Error 2
What version of the product are you using? On what operating system?
1.9.1, Linux
Downstream bug, http://bugs.gentoo.org/278097
Original issue reported on code.google.com by [email protected]
on 16 Jul 2009 at 7:54
I've written a Python API using cython for the mp4v2 public API.
It's a first draft, but pretty much done. Need to finish up the unittests to
tease out any remaining
bugs and probably add some more detailed comments.
Would this be something the project would be interested in adding to their
library?
-james
Original issue reported on code.google.com by [email protected]
on 24 Nov 2009 at 2:31
http://developer.apple.com/quicktime/icefloe/dispatch019.html#colr has details
on the colr
specification. it would be helpful to have be able to write this atom to an
existing MP4 file.
Original issue reported on code.google.com by [email protected]
on 2 Dec 2008 at 4:33
If you call MP4SetChapters with an array of chapters with different chapter
titles, but 0 durations, the first chapter title gets written to very
chapter. I've attached a test program that creates this.
Dan
Original issue reported on code.google.com by [email protected]
on 19 Dec 2009 at 11:09
Attachments:
Looks like the man pages have not been actively updated for a long time.
We should consider that man-pages are falling out of favor for API
documentation and look
towards something like headerdoc or doxygen to markup header files. This in
turn will help keep
the API docs in sync and present API docs in a more platform-agnostic fashion;
eg: html/pdf.
Original issue reported on code.google.com by [email protected]
on 29 Oct 2008 at 8:17
What steps will reproduce the problem?
1. Download a sample m4a file such as
http://www.online.uillinois.edu/oakley/mp3/SteveJobs.m4a
2. Create a simple program that only calls MP4Modify on the file, without
calling MP4Close, and run it.
What is the expected output? What do you see instead?
After running the test program, the file should still be intact and
playable. However, the file will have become corrupted and can't even be
played anymore. Subsequent calls to MP4Modify on the file will fail too.
It doesn't make sense that calling a close function is required to keep the
file intact. A common close function should just do some cleanup, such as
closing the opened file and freeing up resources. If, for example, an
exception or crash would occur before the call to MP4Close, then this would
have the undesirable side effect that the opened file has become corrupted.
What version of the product are you using? On what operating system?
Revision 369 on Windows XP SP3.
Please provide any additional information below.
Using Visual Studio 2008 Professional to compile, in the 'Release Static'
configuration.
Original issue reported on code.google.com by tdebaets
on 20 Aug 2009 at 6:55
What steps will reproduce the problem?
1. Encode movie using Handbrake 0.9.3 as M4V - AppleTV profile
2. Added short description tag using mp4tags (-m option)
# ./mp4tags -m "My short description..." /mnt/hgfs/Vserv/LayerCake-2.m4v
./mp4info /mnt/hgfs/Vserv/LayerCake-2.m4v
/home/rsandru/mp4v2/build/.libs/lt-mp4info version 2.0-r248
/mnt/hgfs/Vserv/LayerCake-2.m4v:
Track Type Info
1 video H264 Main@3, 381.760 secs, 935 kbps, 720x432 @ 25.000000 fps
2 audio MPEG-4 AAC LC, 381.653 secs, 160 kbps, 48000 Hz
3 audio ac-3, 381.632 secs, 448 kbps, 48000 Hz
4 text
Encoded with: HandBrake 0.9.3 2008112300
Short Description: My short description...
3. Added file to iTunes, description field is empty. When played in QuickTime,
the description
shows a weird string. (See attachments)
4. Edited the field in iTunes and saved it, mp4info shows it correctly:
./mp4info /mnt/hgfs/Vserv/LayerCake-2.m4v
/home/rsandru/mp4v2/build/.libs/lt-mp4info version 2.0-r248
/mnt/hgfs/Vserv/LayerCake-2.m4v:
Track Type Info
1 video H264 Main@3, 381.760 secs, 935 kbps, 720x432 @ 25.000000 fps
2 audio MPEG-4 AAC LC, 381.653 secs, 160 kbps, 48000 Hz
3 audio ac-3, 381.632 secs, 448 kbps, 48000 Hz
4 text
Encoded with: HandBrake 0.9.3 2008112300
Short Description: Short desc added in iTunes....
5) Edited again using mp4tags and the changes are now reflected in iTunes...
What is the expected output? What do you see instead?
iTunes doesn't show the short description field when the file is tagged using
mp4tags. If the field
is edited first in iTunes, subsequent updates with mp4tags work just fine.
What version of the product are you using? On what operating system?
Checked out latest version from SVN.
configure:
-->
--> Configuring MP4v2 2.0-r248
-->
Running on Ubuntu 8.04.1
Linux vserv 2.6.24-19-server #1 SMP Wed Aug 20 23:54:28 UTC 2008 i686 GNU/Linux
Original issue reported on code.google.com by [email protected]
on 21 Jan 2009 at 11:06
Attachments:
the spec recommends extended sizing be used only when needed; ie: 32-bit atom
size is
exceeded.
Original issue reported on code.google.com by [email protected]
on 2 Dec 2008 at 11:58
hi,
mp4track can only modify trak.mdia.hdlr.name atom (--hdlrname STR)
it would be very useful to modify trak.mdia.hdlr.subtype especially for
QTime, iTunes, iPhone, iTouch, iPod subtitles (it needs "sbtl" insted of
"text")
i am using mp4v2 tools trunk-r355 for windows xp.
best regards from romania (eu)
Original issue reported on code.google.com by [email protected]
on 29 Jul 2009 at 7:28
What steps will reproduce the problem?
1. Call MP4Open. Get a valid mp4 file handle.
2. Call MP4Close with a given mp4 file handle.
3. File handle is not null, but the underlying ptr has been deleted by
MP4Close.
What is the expected output? What do you see instead?
I think the file handle should be set to null after being deleted; this
way callers can easily determine if a given handle is valid.
What version of the product are you using? On what operating system?
1.9.1, although the current issue exists in the trunk as well (seem
MP4Close()
Please provide any additional information below.
Should be a one-line fix:
void MP4Close(MP4FileHandle hFile)
{
...
delete &f;
&f = NULL; // <--NEW LINE OF CODE
}
Original issue reported on code.google.com by [email protected]
on 20 Aug 2009 at 7:20
What steps will reproduce the problem?
have an MP4 containing H.264 with bframes, and add chapters to it using mp4chaps
What is the expected output? What do you see instead?
the duration should be equal to the duration prior to using mp4chaps. It is in
Quicktime/VLC,
but in iTunes the duration becomes much longer than the original duration.
Please provide any additional information below.
this will only happen with movies containing bframes
"clean" versions of the sample files are available at http://public.me.com/jpo,
and also "chapped"
versions of the files that exhibit the problem
Original issue reported on code.google.com by [email protected]
on 15 Dec 2008 at 4:05
I'm attaching a patch to fix the build of 1.9.1 on Cygwin.
* configure.ac [cygwin]: Enable shared libraries.
* doc/GNUmakefile.mk: Fix parallel make.
Original issue reported on code.google.com by [email protected]
on 28 Jul 2009 at 3:09
Attachments:
hi,
first of all thanks a lot for developing mp4track (i am using it as atom
editor for +2gb .mp4 files after i add subtitles).
the problem is that i need to modify width, height AND the translation (x,y)!
for example:
Track # 4 Info - TrackID 4 - TimeScale 1000 - Duration 00:02:00.727
Media Info: Language "English" - Type "sbtl:tx3g" - 32 samples
3GPP/MPEG-4 Timed Text - Size 480 x 72 - Translation X=0 Y=296 - Layer 0
Alternate Group ID 2
this is from a .mp4 movie (480x368) with subtitle displayed at the bottom
of the video
with mp4track i only acces the with and height of the video!
example:
track[3] id=4
type = (sbtl)
enabled = true
inMovie = false
inPreview = false
layer = 0
alternateGroup = 2
volume = 0.0000
width = 480.00000000
height = 72.00000000
language = English
handlerName = Sub_English
userDataName = <absent>
i am using mp4v2 tools trunk-r355 for windows xp.
best regards from romania (eu)
Original issue reported on code.google.com by [email protected]
on 29 Jul 2009 at 7:26
Hi
Downloaded your latest package but it is missing 2 directories (libutil and
mp4optomise) under the vstudio build directory - found them on the site but
you might want to put them in the build
rgds
Stephen
Original issue reported on code.google.com by [email protected]
on 29 Nov 2008 at 4:49
What steps will reproduce the problem?
1. Open file for modification
2. copy samples to single file and close
3. Repeat this 20 to 50 times (or more)
I upgraded my libmp4v2 library from a trunk version dated 2008-12-18.
The modifications for cross-platform abstraction for file I/O and the
switch to Native windows function (CreateFileA ) creates serious file read
write performance degradation.
Reading about 40 audio files (MP4Modify, Read/write samples, MP4Close ...
do again for next file and so on) and combining them in a single m4a file
takes 50 secs using the old file routines. The new routines take over 5
minutes and nearly max out /hang the cpu.
I reverted all the file routines back to before the R296 change.
Performance was restored.
What is the expected output? What do you see instead?
reasonable read/write performance for multiple open/close of files.
What version of the product are you using? On what operating system?
Version 1.9, 1.9.1 and trunk R355 all exhibit the problem.
Tried on WinXP SP3 and Win7
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 11 Jan 2010 at 10:01
What steps will reproduce the problem?
1. Use GNU as 2.19.1 from binutils
2. Put -ggdb3 into CFLAGS and CXXFLAGS in your environment
3. Try to build MP4V2 1.9.0
What version of the product are you using? On what operating system?
MP4V2 1.9.0 release on Linux with GLIBC 2.10+, GCC 4.4+, BINUTILS 2.19+
libtool: compile: i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I./include
-I./include -I. -I. -Wall -Wformat -march=native -O2 -pipe -ggdb3
-fvisibility=hidden -c src/bmff/typebmff.cpp -fPIC -DPIC -o
src/bmff/.libs/typebmff.o
{standard input}: Assembler messages:
{standard input}:444: Error: file number 2 already allocated
libtool: compile: i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I./include
-I./include -I. -I. -Wall -Wformat -march=native -O2 -pipe -ggdb3
-fvisibility=hidden -c src/itmf/CoverArtBox.cpp -fPIC -DPIC -o
src/itmf/.libs/CoverArtBox.o
{standard input}: Assembler messages:
{standard input}:444: Error: file number 2 already allocated
make: *** [src/itmf/CoverArtBox.lo] Error 1
make: *** Waiting for unfinished jobs....
libtool: compile: i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I./include
-I./include -I. -I. -Wall -Wformat -march=native -O2 -pipe -ggdb3
-fvisibility=hidden -c src/rtphint.cpp -o src/rtphint.o >/dev/null 2>&1
make: *** [src/bmff/typebmff.lo] Error 1
Please provide any additional information below.
See (downstream bug), http://bugs.gentoo.org/show_bug.cgi?id=277682
I'm the maintainer of this package for Gentoo, we are working around this
issue by replacing -ggdb3 with -ggdb2 to work around this "problem" inside
our build script -- It's not a problem in that sense anymore for us, but
just in case you want to really fix it.
Original issue reported on code.google.com by [email protected]
on 13 Jul 2009 at 6:21
MP4ConvertTime() does not correctly handle the case when two timescale are not
divisible in
integer, and returns wrong duration. This causes QuickTime to read the track
with a shorter length.
Original issue reported on code.google.com by damiog
on 5 Dec 2008 at 3:43
What steps will reproduce the problem?
1. MP4TrackId trackId = MP4FindTrackId(readfh1, 0, MP4_AUDIO_TRACK_TYPE, 0);
(where readfh1 is valid )
MP4ERROR: FindTrackId: Track index doesn't exist - track 1 type soun
MP4ERROR: FindTrackIndex: Track id 0 doesn't exist
Invalid hintId
What is the expected output? What do you see instead?
expected - valid trackID
runtime error -
What version of the product are you using? On what operating system?
Please provide any additional information below.
I am trying to find a clip (from starting say 3 seconds from mp4 file for a
duration of 100 s (say)).
I have done proper typecasting, but am unable to resolve these runtime errors.
Pls suggest.
I am using library mp4v2 for making the clip.
--------errors -----------
Deleting already existing file - newClip
MP4ERROR: FindTrackId: Track index doesn't exist - track 1 type soun
MP4ERROR: FindTrackIndex: Track id 0 doesn't exist
Invalid hintId converted to mp4timestamp = 4410000
MP4ERROR: MP4File::FindIntegerProperty: no such property -
moov.iods.audioProfileLevelId
Original issue reported on code.google.com by [email protected]
on 19 Jun 2009 at 3:41
[deleted issue]
What steps will reproduce the problem?
1. tag a file with track number
2. add the file to iTunes
What is the expected output? What do you see instead?
To show the file track number in itunes.
What version of the product are you using? On what operating system?
1.9.0, Windows Vista Home Premium
Please provide any additional information below.
if I get information about it show the track number, but in iTunes not show.
Original issue reported on code.google.com by [email protected]
on 13 Jun 2009 at 4:02
Any plans to support Unicode file names (or I just don't know how to build
lib with Unicode support)?
Original issue reported on code.google.com by [email protected]
on 14 Dec 2009 at 5:26
What steps will reproduce the problem?
1. have an MP4 with trak.udta.name (i.e. any Handbrake encode will does this,
as it sets the
Quicktime "name' of an audio track to Stereo or Surround)
2. run mp4file --optimize on said MP4
3. open up the MP4 in Quicktime, and the track name will no longer be present
(replaced by
Sound Track 1), and opening it up in a hex editor, you'll see that track name
is gone as
compared to the original MP4
a few ancillary notes
*) mp4creator --optimize (1.5.0.1, available as a source tarball at
http://downloads.sourceforge.net/mpeg4ip/mpeg4ip-1.5.0.1.tar.gz?
modtime=1149927918&big_mirror=0 or on macports) does not have this issue
*) if I add a fairly "complex" set of metadata (basic set of information for a
TV show) and
optimize, it will crash atomic parsley/metax/mp4creator/muxo with various
errors (memory
overflow for atomic parsley/metax, MP4ERROR: Atom ReadProperties: atom is too
small for
mp4creator/muxo). Running mp4creator verbosely reveals its traversing the atom
tree and trying
to read the udta.name atom and finding it has "insufficient data" (1). I'm not
sure why this only
happens with a complex set of metadata, I might do some tests later to see if
there's a field
causing this, but I doubt it and it would be very time consuming to find out.
*) some notes from konab1end
KonaB1end: libmp4v2 *thinks* a name atom is .. shall we say a Atom -- ie: just
other ITMF ilst
stuff. this is *not* a "FullAtom" which has more fields.
KonaB1end: so since name directly beneath udta (not in ilst), is really a
FullAtom, mp4optimize
unfortunately nukes it down to Atom,
KonaB1end: which is a lean-and-mean style.
KonaB1end: hence the error 'too small'
(1)
ReadAtom: type = "name" data-size = 0 (0x0) hdr 8
ReadProperties: insufficient data for property: version pos 0x646a atom end
0x6469
MP4ERROR: Atom ReadProperties: atom is too small
Original issue reported on code.google.com by [email protected]
on 23 Dec 2008 at 8:12
add CLI support for subtitles; spec 14496-17
Original issue reported on code.google.com by [email protected]
on 3 Dec 2008 at 12:01
The files autoaux/config.guess and autoaux/config.sub date back to
2005-07-08 and are thus way to old. Please update these files, they are
available at <http://savannah.gnu.org/projects/config/>.
Original issue reported on code.google.com by [email protected]
on 30 Oct 2009 at 12:39
mp4tags --track creates a tag that does not work in iTunes.
1. I created an m4a using ffmpeg
2. I tagged it using mp4tags
3. I check the tags using mp4info (they were all correct)
4. I opened the m4a file in iTunes. The track number field appears blank.
It had shown up in mp4info. All other tags and the cover art were OK.
As a side note if I add the track number using iTunes it still shows up the
same in mp4info.
I attached a file tagged with mp4tags and a fixed one retagged with itunes.
Original issue reported on code.google.com by [email protected]
on 12 Nov 2009 at 8:19
Attachments:
Currently mp4art extract covers to current folder. Would be nice to have
option to specify the path where to extract.
Original issue reported on code.google.com by [email protected]
on 13 Nov 2009 at 4:46
First let me say thanks for doing this. I use the mp4lib library in my
tagging program, MetaX for Windows, and it is severely limited, so I also
use AtomicParsley. I hope to standardize on this new mp4v2 dll. Also
thanks for building it for Visual Studio, as the old library had lots of
warnings and dependencies that made it hard to build.
One quick question. I had a heck of a time debugging this, because when I
put a breakpoint on the first line in main in mp4file.cpp (
mp4v2::util::FileUtility util( argc, argv );
) it never gets there. I finally got to debug it by just running it,
letting it fail and then bringing up the debugger. But I'm curious as to
how I can step through this from the beginning.
Again, thanks for the hard work.
Dan
What steps will reproduce the problem?
1. mp4file --dump <any m4v file>
2.
3.
What is the expected output? What do you see instead?
It faults (only in the debug version)
What version of the product are you using? On what operating system?
mp4v2-2.0-20090110
Please provide any additional information below.
In MP4BytesProperty::Dump, the call
text << (isprint( static_cast<char>(value[i]) ) ?
static_cast<char>(value[i]) : '.');
asserts because isprint, calls __fast_ch_check which calls _chvalidator
which then asserts if the char > 256.
Original issue reported on code.google.com by [email protected]
on 11 Feb 2009 at 8:47
function has destructive tendencies.
the naming implies read-only operation but it destroys a gnre atom if it exists.
possible course of action is to remove it, or at least have itmf::Tags
implemention avoid use.
Original issue reported on code.google.com by [email protected]
on 19 May 2009 at 1:32
What steps will reproduce the problem?
1. Create a alaw atom by calling InsertChildAtom(parent, "alaw", 0)
2. Play with VLC and see in the debug messages that the alaw atom is
skipped because it has a size of 34 bytes
3.
What is the expected output? What do you see instead?
I expected to hear audio, but VLC doesn't parse the alaw atom because the
size is too short. Windows Media Player even crashes when playing the file.
What version of the product are you using? On what operating system?
Version 1.9.0
Please provide any additional information below.
I created a .mp4 file with MPEG-4 video and ALAW audio, but VLC was not
able to play the audio. WMP even crashes when I wanted to play the file
with it. After debugging with the source code of VLC, I saw it was not
parsing the alaw atom, because its size was too short (34 bytes). I
transcoded another movie with FFMPEG to .mp4 with MPEG-4 video and ALAW
audio. The alaw atom in this file was 36 bytes, and I was able to play this
file with VLC and WMP.
For now, I add a 2-byte long reserved field in each created sound atom.
This works for me...
Original issue reported on code.google.com by [email protected]
on 13 Jul 2009 at 11:29
I would like to have the following utility added to the project. It's useful
for debugging and general
snooping.
Original issue reported on code.google.com by [email protected]
on 18 Sep 2009 at 3:41
Attachments:
If there is more than one piece of artwork in a file, tags->artworkcount
still returns one, and if you open a file for modify, get and then store
the tags, it gets set to 1 in the file. If you have a file with two pieces
of art, then run the code below, it will report 1 piece and after the
modify there will be only one. (I check the number with atomicParsley).
#include <mp4v2/mp4v2.h>
#include <windows.h>
int main(int argc, char** argv)
{
MP4FileHandle file = MP4Modify( argv[1], 0, 0);
if( file == MP4_INVALID_FILE_HANDLE ) {
printf( "MP4Modify failed\n" );
return 1;
}
/* allocate structure */
const MP4Tags* tags = MP4TagsAlloc();
/* fetch data from MP4 file and populate structure */
MP4TagsFetch( tags, file );
printf("Cover art count %d\n", tags->artworkCount);
MP4TagsSetName(tags, "This is the final test.");
MP4TagsStore(tags, file);
/* free memory associated with structure and close */
MP4TagsFree( tags );
MP4Close( file );
return 0;
}
Original issue reported on code.google.com by [email protected]
on 20 Nov 2009 at 2:18
dataReferenceIndex should be set to 1 by default, but it's 0 for tx3g tracks.
This breaks MP4CopySample() and maybe others functions.
Original issue reported on code.google.com by damiog
on 16 Mar 2009 at 3:00
Attachments:
Pretty please ;)
Original issue reported on code.google.com by [email protected]
on 7 Jan 2009 at 11:19
In iTunes, in order to combine two items under one listing in the library, both
items must have
the same cnID and one must be marked as HD. Until recently, the items also had
to be marked as
music videos or TV shows, with the corresponding stik value. This created an
issue as then
movies could not be combined without a workaround involving crappy iTunes
tagging, which
wasn't really a solution because the tags on the actual files did not change.
With the release of HD movies on iTunes today, I took the opportunity to use an
old iTunes gift
card to buy an HD movie and see how they combined movies. It turns out that
iTunes uses stik 9
for the new HD/SD movies instead of 0. I'm not sure when this change was made,
or if it is
across all movies, but it definitely seems to be store policy with HD movies at
least. NightStorm
noted on IRC that the option for 'Short Film' in the iTunes 'tagging' interface
disappeared in 8.0,
so the switchover probably happened then.
To the point, mp4tags should be changed to use 9 instead of 0 for the stik
value for movies.
Attached are two mp4file --dumps (one for the SD version of W. from the iTunes
store, one for
the HD version of W. from the iTunes store) in a ZIP file.
Original issue reported on code.google.com by [email protected]
on 20 Mar 2009 at 4:05
Attachments:
the following tags should be added to mp4tags for full TV show support:
tvsh - TV show name
tven - TV episode ID (sort of internal code that studios use, usually just ###)
tvsn - TV season
tves - TV episode number (i.e. episode 2 = 2)
tvnn - TV network name (ABC, NBC, etc.)
all are already present in the wiki
Original issue reported on code.google.com by [email protected]
on 10 Feb 2009 at 5:32
Hello,
mp4v2 cant find Genre tag in an mp4 file. I used mp4info compiled with
VS2005 C++
output:
c:\mp4v2-1.9.1\mp4v2-1.9.1\vstudio9.0\mp4info\Release>mp4info.exe "AAC_Ma
préfér
ence.m4a"
mp4info.exe version 1.9.1
AAC_Ma prΘfΘrence.m4a:
Track Type Info
1 audio MPEG-4 AAC LC, 204.474 secs, 128 kbps, 44100 Hz
Name: Ma préférenceAAC
Artist: Julien Clerc
Composer: Composer_JClerc
Encoded with: iTunes 8.0.0.35, QuickTime 7.5.5
Release Date: 1988
Album: Preferences
Track: 5 of 0
BPM: 0
Part of Compilation: no
Part of Gapless Album: no
iTunes seems to find the genre tag "Vocal"
I am using mp4v2 1.9.1 in a project with the same result. operating system
windows xp, mp4v2 info and library was compiled with VS2005 c++ release profile
File is attached
Original issue reported on code.google.com by razone
on 3 Dec 2009 at 2:50
Attachments:
What steps will reproduce the problem?
1. extract a mp3 audio track from a mp4 file
2.
3.
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
Please provide any additional information below.
MP4ERROR: GetSampleFile: invalid stsd entry
thats because the library looks for "*.dataReferenceIndex" in
trak.mdia.minf.stbl.stsd which is not present at all.
Original issue reported on code.google.com by [email protected]
on 21 Feb 2009 at 8:30
hi,
as you know with Qtime you can add chapters (apple) for every sream in a
.mp4 file.
this is very nice if you have a video with multiple audio tracks!
for example:
video + audio in english + audio in spanish + directors comments
you can add chapters in english to the audio english track, in spanish to
the spanish audio track and bookmarks to directors comments.
this way when you change the audio track the apropriate chapters are selected!
i dont know if this feature is posible for nero chapters.
also it will be nice to be able to add chapters to what trackID do you
want! (mp4chaps -i --track-id ID mymp4.mp4)
for the example below:
mp4chaps -i -N --track-id 1 mymp4.mp4
mp4chaps -i -Q --track-id 2 mymp4.mp4
mp4chaps -i -Q --track-id 3 mymp4.mp4
mp4chaps -i -Q --track-id 4 mymp4.mp4
this way you will have nero chapters for the video and apple chapters for
audio tracks!
i am using mp4v2 tools trunk-r355 for windows xp.
best regards from romania (eu)
Original issue reported on code.google.com by [email protected]
on 29 Jul 2009 at 7:49
Enviroment: MSVC 2005, svn trunk version.
Steps to reproduce: try do MP4CreateEx with for example 4 compatible
brands. After dumping we see only two of them.
Suggested fix:
mp4file.cpp:2955 ftyp->compatibleBrands.SetValue( compatibleBrands[i] );
Change SetValue to AddValue or explicitly set second argument of SetValue to i.
Original issue reported on code.google.com by [email protected]
on 28 Sep 2009 at 4:56
Patch attached.
Original issue reported on code.google.com by damiog
on 15 Mar 2009 at 6:04
Attachments:
I think this is supported by Atomic Parsley.
Apple is using it on his AppleTV to protect viewing certain files without
entering a password.
Also buildin into metaX wich I believe relise on Atomic Parsley.
Conrad
Original issue reported on code.google.com by [email protected]
on 8 Mar 2009 at 4:18
Either I just can't figure out the MP4GetMetadataFreeForm function, or the
lyrics atom (moov.udta.meta.ilst.\251lyr) just isn't accessible.
The attached patch creates MP4(Set/Get/Delete)MetadataLyrics functions
(literally an adjusted copy of the Artist functions) that works with
lyrics. I have only tested the get function, but the others should work
just as well as Artist.
Original issue reported on code.google.com by james.zapico
on 8 Dec 2008 at 6:36
Attachments:
The homepage for mp4v2 and all the source files state the mp4v2 is licensed
under the MPL-1.1 yet the COPYING file has the text to the LGPL-2.0.
From what I understand, mp4v2 originally comes from mpeg4ip, which was
licensed under MPL-1.1 only. Also, I noticed the COPYING file changed from
having the GPL-2.0 text to now having the LGPL-2.0 text. Is there
provisions now indicating that mp4v2 is licensed under other licenses
besides the MPL?
Original issue reported on code.google.com by [email protected]
on 29 Jul 2009 at 3:19
When converting Bluray and HDDVD sources with eac3to, the program outputs
chapters in the
format shown below. It would be great if mp4chaps could use this file directly
to import chapters
into a mp4 instead of having to manually edit the file to match the syntax
mp4chaps expects.
Example output of chapters.txt file generated by eac3to:
CHAPTER01=00:00:00.000
CHAPTER01NAME=Living Weapon
CHAPTER02=00:05:00.750
CHAPTER02NAME=A Better World
CHAPTER03=00:09:31.937
CHAPTER03NAME=Aboard Serenity (Main Titles)
CHAPTER04=00:14:49.088
CHAPTER04NAME=Going for a Ride
Original issue reported on code.google.com by [email protected]
on 7 Feb 2009 at 8:38
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.