Git Product home page Git Product logo

mp4parser's People

Contributors

stife avatar

Watchers

 avatar  avatar

mp4parser's Issues

"tfhd" flags interpretation

1.Open file foo3.mp4
2.Examine moof > traf > tfhd
3.flags is 11 and defaultSampleDuration is displayed.

Per my understanding of ISO/IEC 14496-12, flags 11 should mean 
base-data-offset-present and default-sample-size-present

I am using 1.0 on Win7



Original issue reported on code.google.com by [email protected] on 25 Jun 2011 at 12:35

Attachments:

H264Example is a bad example since FileInputStream does not support mark/reset.

What steps will reproduce the problem?
1.  Run this unit test:
    https://github.com/lucastheisen/mp4tools/blob/master/src/test/java/com/lucastheisen/mp4tools/edit/IsoParserMuxerTest.java

    Note that this unit test relies on the resources in this project so you may have to download my project.

What is the expected output? What do you see instead?
I expect the parts to be joined into the mp4 file, instead, I get:

java.io.IOException: mark/reset not supported
    at java.io.InputStream.reset(InputStream.java:347)
    at com.googlecode.mp4parser.authoring.tracks.H264TrackImpl$ReaderWrapper.reset(H264TrackImpl.java:528)
    at com.googlecode.mp4parser.authoring.tracks.H264TrackImpl.readSamples(H264TrackImpl.java:228)
    at com.googlecode.mp4parser.authoring.tracks.H264TrackImpl.<init>(H264TrackImpl.java:70)
    at com.lucastheisen.mp4tools.edit.IsoParserMuxer.mux(IsoParserMuxer.java:72)
    at com.lucastheisen.mp4tools.edit.IsoParserMuxerTest.testMux(IsoParserMuxerTest.java:30)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)




What version of the product are you using? On what operating system?

I am using:
        <dependency>
            <groupId>com.googlecode.mp4parser</groupId>
            <artifactId>isoparser</artifactId>
            <version>1.0-RC-11-SNAPSHOT</version>
        </dependency>

On: 
        Windows 7 Professional (64 bit)

Using:
        C:\Users\ltheisen>"%JAVA_HOME%/jre/bin/java" -version
        java version "1.7.0_05"
        Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
        Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)

Please provide any additional information below.

My project is available via github and has a unit test for this use case:

https://github.com/lucastheisen/mp4tools/

It seems like the H264TrackImpl should probably take a ReadableByteChannel, or 
perhaps a RandomAccessFile instead of InputStream...

Original issue reported on code.google.com by [email protected] on 28 Jul 2012 at 9:34

mp4parser dependency MappedByteBuffer


mp4parser has dependencies on certain Java classes, first of all 
java.nio.MappedByteBuffer, which are ** not ** allowed by the Google AppEngine 
runtime (see http://code.google.com/appengine/docs/java/jrewhitelist.html). 
Google AppEngine throws an exception e.g "java.lang.NoClassDefFoundError: 
java.nio.MappedByteBuffer is a restricted class. Please see the Google App 
Engine developer's guide for more details." is thrown for the unsupported 
class(es).

- Would it be possible to remove the dependency by mp4parser on these Java 
classes, so as to enable the library to work within Google AppEngine?

Original issue reported on code.google.com by [email protected] on 22 Jun 2011 at 8:11

Allow to add/remove boxes in IsoFile

I am trying to solve the problem with MP4 streaming. FFPMEG place Moov atom 
header to the end of MP4 which prevents proper streaming in FLASH.

I used trunk version of mp4parser:
IsoBufferWrapper isoBufferWrapper = new IsoBufferWrapper(new 
File("C:/test.mp4"));
IsoFile isoFile = new IsoFile(isoBufferWrapper);
isoFile.parse();
isoFile.parseMdats();

Box[] boxes = isoFile.getBoxes();

IsoFileConvenienceHelper.switchToAutomaticChunkOffsetBox(isoFile);
//moving MOOV header to front
Box[] fixed = new Box[]{boxes[0], boxes[3], boxes[2], boxes[1]};

//no direct api to change the order of boxes in isoFile
Field field = isoFile.getClass().getDeclaredField("boxes");
field.setAccessible(true);
field.set(isoFile, fixed);

IsoOutputStream isos = new IsoOutputStream(new FileOutputStream(new 
File("c:/testFixed.mp4")));
isoFile.getBox(isos);


So i have used reflection to change boxes array in IsoFile. Without that i will 
get incorrect offset because boxes in isoFile will use old offsets when writing 
to file.

P.S May you please release trunk 1.0-alpha-2-SNAPSHOT as artifact to maven ?




Original issue reported on code.google.com by [email protected] on 13 Jan 2011 at 7:46

Wrong SPS values shown in avcC Box (PPS values also)

What steps will reproduce the problem?
1. Open any MP4 file with valid H.264 bitstream
2. Open avcC Box and find SPS[1] values parsed incorrectly
3. At the same time fields "avcLevelIndication" and "avcProfileIndication" have 
correctly parsed values.

What is the expected output? What do you see instead?
I.e. High Profile @ Level 4.0 is shown with: profile_idc=103 (impossible value) 
and constraint_set(x)_flag booleans also wrong

What version of the product are you using? On what operating system?
2.0 RC16 on win7

Please provide any additional information below.
I could at least make profile_idc and constraint_set_x_flag fields show correct 
values. PPS still has issues as well.
"dirty hack" patch file attached

Original issue reported on code.google.com by [email protected] on 28 Nov 2012 at 5:18

Attachments:

Code review request

Hi Michi, dein change verändert die avcC box. Bitte lass mal den Test 
H264TrackImpltest laufen, der schlägt fehl - ist jetzt aber das alte oder das 
neue Mp4 heile?
Gruß,
Sebastian

Original issue reported on code.google.com by Sebastian.Annies on 10 Sep 2012 at 3:00

close old file when opening a new file

close old file when opening a new file

file stays open and you can't delete it on windows

Original issue reported on code.google.com by Sebastian.Annies on 15 Feb 2012 at 6:15

Need a google group for this project

Hi,

Mp4parser, with a friendly Apache 2.0 license, can provide a way for 
interacting with the developers and other users.

Will it be possible to create a google group for the same?

If there is one, can it be listed in the project front page.

Thanks
George L

Original issue reported on code.google.com by [email protected] on 22 May 2011 at 4:08

fourCC with copyright symbol not getting looked up in PropertyBoxParserImpl

The apple metadata boxes use a type with a copyright char in the first column. 
This is not getting routed correctly in the lookup. I don't know if this is the 
right fix but the change I made in the fork on github  (see below) causes the 
correct lookup as confirmed by checking the metadata boxes in the viewer for 
the test-pod.m4a file. 

see 
https://github.com/gabe97330/mp4parser-fork/commit/4949c477660886702e2706bd5e6b6
4eb82786ea4

Original issue reported on code.google.com by [email protected] on 17 Apr 2011 at 6:49

make project require maven 3

Since release doesn't work anymore with maven 2 -> require maven 3

Original issue reported on code.google.com by Sebastian.Annies on 2 May 2012 at 8:46

IsoViewer: Long arrays break layout

they have to be 
 * cut (display first 100) or 
 * some paging is need
 * but nevertheless I'd like to be able to get into a spread sheet application

Original issue reported on code.google.com by Sebastian.Annies on 24 Jun 2011 at 4:33

tfhd box does not display the Track ID

I have looked at a few different files and they all behave the same. The Track 
Header Box does not display the Track ID. I assume that this Track ID is used 
when listing the tracks in the Tracks & Samples tab so it would be useful to be 
able to tie the two together.

Original issue reported on code.google.com by [email protected] on 30 Aug 2011 at 12:30

InputStream.skip (n) throws IOException in Android if n is a negative number.

What steps will reproduce the problem?
1. Run the following code in Android environment will generate an IOException.

   AACTrackImpl aacTrack = new AACTrackImpl(new FileInputStream (aacFilePath));

What is the expected output? What do you see instead?

Exception is generated with the following stack trace
Exception stack trace

        java.io.IOException ("count < 0")
    at com.googlecode.mp4parser.authoring.tracks.AACTrackImpl.<init>(AACTrackImpl.java:77)



What version of the product are you using? On what operating system?
Android 2.3 (Gingerbread)

Please provide any additional information below.

Per Java API 
http://docs.oracle.com/javase/6/docs/api/java/io/InputStream.html#skip(long)
method skip(n)does not handle negative n number.

Original issue reported on code.google.com by [email protected] on 16 May 2012 at 8:58

support for extended box (largesize)

Hello,

It seems parsing for extended boxes is not supported.
Here is a small part of the spec :
[...]
4.2 Object Structure
[...]
unsigned int(32) size;
unsigned int(32) type = boxtype;
if (size==1) {
unsigned int(64) largesize;
} else if (size==0) {
[...]

Some encoders builds extended box for the mdat box, even if the content can fit 
in a 32 bits box.
Here a small dump of the file:
00 00 00 01 // use big box (size is 1)
6D 64 61 74 // mdat 
00 00 00 00 00 07 BC AB // The size (here fits in 32 bit !!)

Sylvain

Original issue reported on code.google.com by [email protected] on 7 Nov 2011 at 9:56

RequiresParseDetailAspect exception is incorrect

line 56:

            throw new RuntimeException("Only methods in subclasses of " + AbstractBox.class.getName() + " can  be annotated with DoNotParseDetail");


should be:

            throw new RuntimeException("Only methods in subclasses of " + AbstractBox.class.getName() + " can  be annotated with ParseDetail");

Original issue reported on code.google.com by [email protected] on 25 Jun 2012 at 8:50

iods box parsing and dref->url box parsing - Feature Request

This is feature request. It doesn't have the parsing capability of  
dref->url header and iods header. 

Can we have a feature to parse as well as writing capability in this.

Original issue reported on code.google.com by nirbhay.kundan.2 on 10 Oct 2011 at 6:28

com.coremedia.iso.boxes.mdat.SampleListTest.testGotAll() fails

C:\bt\libraries\mp4\isoparser>mvn -version
Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500)
Maven home: C:\java\apache-maven-3.0.4
Java version: 1.6.0_14, vendor: BEA Systems, Inc.
Java home: C:\java\jrmc-3.1.2-1.6.0\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

java.lang.AssertionError
    at org.junit.Assert.fail(Assert.java:92)
    at org.junit.Assert.assertTrue(Assert.java:43)
    at org.junit.Assert.assertTrue(Assert.java:54)
    at com.coremedia.iso.boxes.mdat.SampleListTest.testGotAll(SampleListTest.java:73)


Looks like the sample file fails to delete for some reason.

I think the test case should put the sample file in the target/ directory so 
the files are cleaned up on 'mvn clean'. If they are in the temp directory, 
they will build up over time when tests fail.


Original issue reported on code.google.com by [email protected] on 25 Jun 2012 at 2:24

Feature request: set flags in vmhd (VideoMediaHeaderBox)


I have an MP4 file where the encoder has incorrectly set the flags field of the 
vmhd box to 0, when the spec says it should always be 1.

Would it be possible to have a method added to 
com.coremedia.iso.boxes.AbstractMediaHeaderBox to set the value of the field?

Thanks!

Original issue reported on code.google.com by [email protected] on 24 Aug 2012 at 4:13

mp4parser doesn't compile

What steps will reproduce the problem?
1. svn checkout http://mp4parser.googlecode.com/svn/trunk/ mp4parser
2. cd mp4parser
3. mvn compile

Expected output:
It should compile without errors.

Actual output:

[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.
Missing:
----------
1) com.googlecode.mp4parser:isoparser:jar:1.0-alpha-2-SNAPSHOT
...
---------------------------------------------------------------
I hope this is a right way to report a problem.
Thanks a lot,
--Sergey


Original issue reported on code.google.com by [email protected] on 22 Apr 2011 at 3:19

incorrect double[] matrix values in TrackHeaderBox

Old values from the long[] were retained, leading to garbage data in the matrix 
when authoring files.

This fix worked for me:

private double[] matrix = new double[]{1.0d, 0, 0, 0, 1.0d, 0, 0, 0, 1.0d};

Not sure about the last 1.0 - just copied an existing MP4 file's matrix :)

Original issue reported on code.google.com by [email protected] on 20 Nov 2012 at 1:40

co64 not supported - 64-bit stco


What steps will reproduce the problem?
Open the viewer with the attached file and look under the stbl atom.

What is the expected output? What do you see instead?
The co64 is the 64-bit version of the stco atom, and as such it is almost the 
same, just with larger data sizes. But it appear as an unknown atom. 

What version of the product are you using? On what operating system?
Latest web start


Original issue reported on code.google.com by thomas.skjolberg on 23 Sep 2011 at 2:12

Attachments:

java.lang.NullPointerException

What steps will reproduce the problem?
1. Run Test.java in com.coremedio.iso on Eclipse for Windows.
2. Instantiate new IsoFile variable.
3. Run program

What is the expected output? What do you see instead?
Not sure what the expected output should be, but I get the NullPointerException 
instead.

What version of the product are you using? On what operating system?
Just checked the version through svn. Running it on Windows 7.


Please provide any additional information below.

Here is what Eclipse traced the error back through:
Exception in thread "main" java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Unknown Source)
    at java.util.Properties.load0(Unknown Source)
    at java.util.Properties.load(Unknown Source)
    at com.coremedia.iso.PropertyBoxParserImpl.<init>(PropertyBoxParserImpl.java:27)
    at com.coremedia.iso.IsoFile.<init>(IsoFile.java:34)
    at com.coremedia.iso.Test.main2(Test.java:18)
    at com.coremedia.iso.Test.main(Test.java:11)

Original issue reported on code.google.com by [email protected] on 30 Jun 2011 at 8:48

iTunes produced small file fails with Reconstructed Size is not equal to the number of parsed bytes!""

I'm trying to use mp4parser to implement a MP4 parser for Apache Tika

As part of that, I've created a small test M4A MP4 audio file using iTunes, 
which is based on a very short wav file and some test metadata. The test file 
is only 5kb large, and is available from 
http://svn.apache.org/repos/asf/tika/trunk/tika-parsers/src/test/resources/test-
documents/testMP4.m4a

When trying to load this file in mp4parser when asserts are enabled (such as in 
the Tika test suite), the parser blows up with:

Reconstructed Size is not equal to the number of parsed bytes! (hdlr) Actual 
Box size: 34 Calculated size: 36 at offset: 617

Looking at a hex dump of the file, the size is 0x22, and that looks correct to 
me as at 0x028b we have 00 00 03 a6 ilst, which appears to be a 0x03a6 long 
ilst box:

00000260  fb 6d 65 74 61 00 00 00  00 00 00 00 22 68 64 6c  |.meta......."hdl|
00000270  72 00 00 00 00 00 00 00  00 6d 64 69 72 61 70 70  |r........mdirapp|
00000280  6c 00 00 00 00 00 00 00  00 00 cc 00 00 03 a6 69  |l..............i|
00000290  6c 73 74 00 00 00 22 a9  6e 61 6d 00 00 00 1a 64  |lst...".nam....d|


The file was created with iTunes (which has no problems with it), and both 
mplayer and ffmpeg are happy with it too, so this looks like a mp4parser bug

Original issue reported on code.google.com by [email protected] on 28 Jan 2012 at 9:12

Append one video to another

            FileInputStream is1 = new FileInputStream(storagePath + "V1.mp4");
            FileChannel source1 = is1.getChannel();

            FileInputStream is2 = new FileInputStream(storagePath + "V2.mp4");
            FileChannel source2 = is2.getChannel();

            video = MovieCreator.build(source1);
            audio = MovieCreator.build(source2);

            List<Track> videoTracks = video.getTracks();
            video.setTracks(new LinkedList<Track>());

            List<Track> audioTracks = audio.getTracks();

            for (Track videoTrack : videoTracks) {
                video.addTrack(new AppendTrack(videoTrack, videoTrack));
            }
            for (Track audioTrack : audioTracks) {
                video.addTrack(new AppendTrack(audioTrack, audioTrack));
            }

            IsoFile out = new DefaultMp4Builder().build(video);
            FileOutputStream fos = new FileOutputStream(new File(storagePath,
                    String.format("output.mp4")));
            out.getBox(fos.getChannel());
            fos.close();

            is1.close();
            is2.close();
            source1.close();
            source2.close();




What is the expected output? What do you see instead?
I found output.mp4 appended but, two times V1.mp4. I want concatenation of 
V1.mp4 and V2.mp4. How can I add tracks appneded.

I am using ICS 4.0.3



Original issue reported on code.google.com by [email protected] on 26 Dec 2012 at 6:36

Entries not visible for some boxes

* CompositionTimeToSampleBox
* SampleToChunkBoix
* TimeToSampleBox

Original issue reported on code.google.com by Sebastian.Annies on 24 Jun 2011 at 4:31

SegmentTypeBox patch

This isn't a bug, but I can't find anywhere else to make a code submission.

I've been using this API to parse and modify fragmented mp4 files and needed 
support for the styp (Segment type) box in the API. The attached java class + 
patch will add the necessary support. The code is a fairly minor modification 
of the existing FileTypeBox class.

Original issue reported on code.google.com by [email protected] on 10 May 2012 at 4:34

Attachments:

enhanced podcast files are not handled

There are several problems with handling of enhanced podcast files. The 
problems are encountered with even very simple examples. I have forked the 
mp4parser project at Github (https://github.com/gabe97330/mp4parser-fork) and 
made some changes that seem to address at least some of the problems but its 
still not totally right.

You can find a test file at 
https://github.com/gabe97330/mp4parser-fork/blob/master/isoparser/src/test/resou
rces/test-pod.m4a which will cause the viewer application to fail.

Original issue reported on code.google.com by [email protected] on 16 Apr 2011 at 12:10

ChunckOffsetBox Index Out of Bonds Exception

What steps will reproduce the problem?
1. Parsinsg a mp4 file
2. When I try to get a stco box with (ChunkOffsetBox stco = 
stbl.getBoxes(ChunkOffsetBox.class).get(0);)
3. I get the exception

What is the expected output? What do you see instead?
The expected output is a stco box

What version of the product are you using? On what operating system?
latest maven repository version (1.0-beta-3) Ubuntu 11.10 64-bits

Please provide any additional information below.
Parsing with java code got in the example page.


Original issue reported on code.google.com by [email protected] on 8 Dec 2011 at 6:36

h264 to mp4 failed

i try this on a android device.

but the output mp4 file is not correct;it have only two seconds duration.not 
equal with the count.h264 duration


H264TrackImpl h264Track = new H264TrackImpl(new FileInputStream(
                "//mnt/sdcard/count.h264"));
        Movie m = new Movie();
        m.addTrack(h264Track);
        {
            IsoFile out = new DefaultMp4Builder().build(m);
            File ofile = new File("//mnt/sdcard/output.mp4");
            if(ofile.exists())
            {
                ofile.delete();
            }
            ofile.createNewFile();
            FileOutputStream fos = new FileOutputStream(ofile);
            out.getBox(fos.getChannel());
            fos.close();
        }
        {
            FragmentedMp4Builder fragmentedMp4Builder = new FragmentedMp4Builder();
            fragmentedMp4Builder
                    .setIntersectionFinder(new SyncSampleIntersectFinderImpl());
            IsoFile out = fragmentedMp4Builder.build(m);
            File ofile2 = new File("//mnt/sdcard/output-frag.mp4");
            if(ofile2.exists())
            {
                ofile2.delete();
            }
            ofile2.createNewFile();
            FileOutputStream fos = new FileOutputStream(ofile2);
            out.getBox(fos.getChannel());
            fos.close();
        }

Original issue reported on code.google.com by [email protected] on 19 Sep 2012 at 12:19

Unable to parse m4v file, and then corrupted when trying to write to it.

I've come across a problem using the ISOParser. I've encoded a DVD to a .m4v 
file. I've done this using handbrake (http://handbrake.fr/) with the "AppleTV 
2" preset. So it has two audio tracks one of them a AC3 copy of the DVD's 
audio. I've also added in chapter information. The ripped DVD file at this 
point is working fine and has full chapter information.

Now I attempt to parse it with the ISOParser so I can update it with iTunes 
metadata. However I get lots of parsing errors from 
SampleDependecType.getSampleCount(), which is unable to find the Sample size 
box.

It prints the message "Couldn't find Track Run Box. Trying to determine sample 
count by looking up Sample Size Boxes".

I'm running the SVN version (revision 145). 

Any help with this would be much appreciated, let me know if their is anything 
I can do to help.

Original issue reported on code.google.com by [email protected] on 30 May 2011 at 4:55

AbstractAppleMetaDataBox.setValue() not working correctly

I noticed that writing a value "9" to a AppleMediaTypeBox, always results in 
"0" getting written. I've tracted this now to the what I think is a problem in 
AbstractAppleMetaDataBox.setValue(). If the section where 
appleDataBox.getFlags() == 2, it writes the correct content to a 
ByteArrayOutputStream(). However it never writes the contents of this to the 
box.

If I change line 109 from:

appleDataBox.setContent(content);

to:

appleDataBox.setContent(baos.toByteArray());

it fixes the problem for me. I've attached a patch to this issue.


I'm using the latest SVN checkout (at the time of creating this issue).


Original issue reported on code.google.com by [email protected] on 5 May 2011 at 8:26

Attachments:

Size of box "stco"

What steps will reproduce the problem?
1.Open the attached file foo1.mp4 and examing box "stco". It shows the size = 
16.
2.Open the second attached file foo1.mp4 and examine box "fooo". It shows size 
= 32.

The two files are identical except the tag of a box. The tag is "stco" for the 
first file and "fooo" for the second file.

The expected size is 32 for the box.


Original issue reported on code.google.com by [email protected] on 24 Jun 2011 at 4:58

Attachments:

isoviewer 1.2 and file as command line argument

Hello,
It seems the file is not recognized as command line argument:
$ java -jar isoviewer-1.1.jar myfile.mp4 works
$ java -jar isoviewer-1.2.jar myfile.mp4 does not work anymore.
--
Sylvain

Original issue reported on code.google.com by [email protected] on 4 Nov 2011 at 6:00

Can not edit tag info of MP4 file

I try to edit metadata of a MP4 file, the taginfo is stored in file 
successfully. But after that I can not play that MP4 files. 

One more point, if I change the comment value but keep the comment size. For 
example change it from "abcdef" to be "fedcba" it works, can play output file 
also.

Please help me to check it

Original issue reported on code.google.com by [email protected] on 14 Dec 2011 at 3:08

Attachments:

Output IsoFile to byte array

In every example, an IsoFile is put into a file on a disk.
How Can I get it into a byte array?

ByteArrayOutputStream seems like a good idea, but it doesn't provide a channel 
that IsoFile.getBoxes() could write into.

Maybe there is a way to somehow cheat the getBoxes() or write a simple 
'para-channel' to write into BAOS?

I am not very deep into Java so I couldn't figure it out myself.


Original issue reported on code.google.com by [email protected] on 5 Sep 2012 at 10:00

java.lang.RuntimeException: too many PopLocalFrame calls

On Android 4.0.3, Nexus S

With an audio file approximately longer than 30 seconds, we see:

java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:278)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.RuntimeException: too many PopLocalFrame calls
at libcore.io.Posix.writev(Native Method)
at libcore.io.BlockGuardOs.writev(BlockGuardOs.java:196)
at java.nio.IoVec.doTransfer(IoVec.java:81)
at java.nio.FileChannelImpl.transferIoVec(FileChannelImpl.java:327)
at java.nio.FileChannelImpl.write(FileChannelImpl.java:505)
at java.nio.channels.FileChannel.write(FileChannel.java:716)
at 
com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder$InterleaveChunkMdat
.getBox(DefaultMp4Builder.java:448)
at com.coremedia.iso.IsoFile.getBox(IsoFile.java:177)
at com.todoroo.aacenc.AACToM4A.convert(AACToM4A.java:40)

at android.os.AsyncTask$2.call(AsyncTask.java:264)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
... 5 more


Original issue reported on code.google.com by [email protected] on 4 Sep 2012 at 7:40

isoviewer compile error

First of all, thank you for wonderful tool.

I tried to build the source code and met a problem.

Under the mdta directory, there is no source code for Sample.
So GenericSamplePane.java raise build failure.

Original issue reported on code.google.com by [email protected] on 5 Aug 2011 at 4:00

Some examples work for RC2 but result in unplayable files for RC10

What steps will reproduce the problem?
1. Modify ReadWriteExample or ShortenExample to reference a local mp4 file
2. Run the examples, and observe that the examples run to completion without 
any errors/exceptions
3. Attempt to play the generated output file

What is the expected output? What do you see instead?
I expect the output files to play; instead, for RC10 I get an error and the 
files will not play. For RC2 the output files play perfectly (in Windows Media 
Player 12)

What version of the product are you using? On what operating system?
1.0-RC2 & 1.0-RC10; on Windows 7 64 bit; Java 7 64 bit (1.7.0_04-b22)

Please provide any additional information below.
I could reproduce with several mp4 files, including the following as an 
example: http://www.mp4point.com/downloads/8e0c61a02ded.mp4 (10mb film trailer)

Original issue reported on code.google.com by [email protected] on 2 Jul 2012 at 11:43

main view refresh

What steps will reproduce the problem?
Load a new file into isoviewer when another was already loaded

What is the expected output? What do you see instead?
main view should get updated at this moment, instead this only happens when a 
new box is clicked

What version of the product are you using? On what operating system?
the latest (isoviewer-1.2-SNAPSHOT.jar)

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 29 Aug 2011 at 10:57

Exception when opening a media file containing a user box

What steps will reproduce the problem?
1. From isoviewer, try to open a media file that has a user box (type "uuid"). 
In particular, I'm trying to add UITS tags.

What is the expected output? What do you see instead?

PropertyBoxParserImpl prints this stack trace:

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: 
java.lang.NoSuchMethodException: com.coremedia.iso.boxes.UserBox.<init>(null)
    at com.coremedia.iso.PropertyBoxParserImpl.createBox(PropertyBoxParserImpl.java:95)
    at com.coremedia.iso.AbstractBoxParser.parseBox(AbstractBoxParser.java:62)
    at com.coremedia.iso.AbstractBoxParser.parseBox(AbstractBoxParser.java:1)
    at com.coremedia.iso.IsoFile.parse(IsoFile.java:92)
    at com.coremedia.iso.gui.IsoViewerFrame.open(IsoViewerFrame.java:174)
    at com.coremedia.iso.gui.IsoViewerFrame$3.actionPerformed(IsoViewerFrame.java:143)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1223)
    at com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:137)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1264)
    at java.awt.Component.processMouseEvent(Component.java:6352)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6117)
    at java.awt.Container.processEvent(Container.java:2085)
    at java.awt.Component.dispatchEventImpl(Component.java:4714)
    at java.awt.Container.dispatchEventImpl(Container.java:2143)
    at java.awt.Component.dispatchEvent(Component.java:4544)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
    at java.awt.Container.dispatchEventImpl(Container.java:2129)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4544)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.NoSuchMethodException: 
com.coremedia.iso.boxes.UserBox.<init>(null)
    at java.lang.Class.getConstructor0(Class.java:2706)
    at java.lang.Class.getConstructor(Class.java:1657)
    at com.coremedia.iso.PropertyBoxParserImpl.createBox(PropertyBoxParserImpl.java:88)
    ... 33 more

What version of the product are you using? On what operating system?

I expect the file to be open successfully.

Please provide any additional information below.

I have attached a media file that repros this and a patch to fix it. It was 
just a capitalization error in default.properties.

Original issue reported on code.google.com by [email protected] on 3 Feb 2011 at 4:37

Attachments:

CroppedTrack.java confused with index and sample number value

What steps will reproduce the problem?
1.capture a video with only 1 sync sample
2.try the ShortenExample.java with time set to, let's say, 0~5 seconds
3.it crashes

What is the expected output? What do you see instead?
the cropped video should have the entire video

What version of the product are you using? On what operating system?
using the code from svn

Please provide any additional information below.

The CroppedTrack.java doesn't differentiate array index and value so clearly. 
When you call getSyncSamples(), the first value (not the index) is 0 instead of 
1. But if you try it on original track, it is 1. 

I've attached my corrected version, but it's not thoroughly tested. Hope it 
helps your debugging and fixing.




Original issue reported on code.google.com by [email protected] on 23 Oct 2011 at 8:34

Attachments:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.