/*******************************************************************************
* Copyright (c) 2008, 2010 Xuggle Inc. All rights reserved.
*
* This file is part of Xuggle-Xuggler-Main.
*
* Xuggle-Xuggler-Main is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Xuggle-Xuggler-Main is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Xuggle-Xuggler-Main. If not, see <http://www.gnu.org/licenses/>.
*******************************************************************************/
package com.xuggle.xuggler;
import junit.framework.TestCase;
import org.junit.Ignore;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.xuggle.ferry.IBuffer;
import com.xuggle.xuggler.io.IURLProtocolHandler;
public class ContainerTest extends TestCase
{
private final String mSampleFile = "c:/xugger_testFile/testfile.flv";
private final Logger log = LoggerFactory.getLogger(this.getClass());
/**
* At FFmpeg revision r22821 this started failing. I wasn't able to find a cause easily, so I'm disabling for now.
*/
@Test
@Ignore
public void disabled_testContainerOpenAndClose2()
{
IContainer container = null;
IContainerFormat fmt = null;
int retval = -1;
container = IContainer.make();
fmt = IContainerFormat.make();
// try opening a container format
retval = fmt.setInputFormat("flv");
assertTrue("could not set input format", retval >= 0);
retval = container.open("file:" + mSampleFile, IContainer.Type.READ, fmt);
assertTrue("could not open file for writing", retval >= 0);
retval = container.close();
assertTrue("could not close file", retval >= 0);
}
@Test
public void testContainerOpenAndClose()
{
// maximize FFmpeg logging
log.debug("About to change logging level");
Global.setFFmpegLoggingLevel(50);
// Try getting a new Container
IContainer container = null;
IContainerFormat fmt = null;
int retval = -1;
container = IContainer.make();
fmt = IContainerFormat.make();
// try opening a container format
retval = fmt.setInputFormat("flv");
assertTrue("could not set input format", retval >= 0);
retval = fmt.setOutputFormat("flv", null, null);
assertTrue("could not set output format", retval >= 0);
// force collection of native resources.
container.delete();
container = null;
// get a new container; which will deref the old one.
container = IContainer.make();
// now, try opening a container.
retval =
container.open("file:" + this.getClass().getName() + "_" + this.getName() + ".flv",
IContainer.Type.WRITE,
fmt);
assertTrue("could not open file for writing", retval >= 0);
retval = container.close();
assertTrue("could not close file", retval >= 0);
retval =
container.open("file:" + this.getClass().getName() + "_" + this.getName() + ".flv",
IContainer.Type.WRITE,
null);
assertTrue("could not open file for writing", retval >= 0);
retval = container.close();
assertTrue("could not close file", retval >= 0);
retval = container.open("file:" + mSampleFile, IContainer.Type.READ, null);
assertTrue("could not open file for writing", retval >= 0);
retval = container.close();
assertTrue("could not close file", retval >= 0);
}
@Test
public void testCorrectNumberOfStreams()
{
IContainer container = IContainer.make();
int retval = -1;
retval = container.open(mSampleFile, IContainer.Type.READ, null);
assertTrue("could not open file", retval >= 0);
int numStreams = container.getNumStreams();
assertTrue("incorrect number of streams: " + numStreams, numStreams == 2);
retval = container.close();
assertTrue("could not close the file", retval >= 0);
}
@Test
public void testWriteHeaderAndTrailer()
{
IContainer container = IContainer.make();
int retval = -1;
retval = container.open(this.getClass().getName() + "_" + this.getName() + ".flv", IContainer.Type.WRITE, null);
assertTrue("could not open file", retval >= 0);
IStream stream = container.addNewStream(0);
IStreamCoder coder = stream.getStreamCoder();
coder.setCodec(ICodec.ID.CODEC_ID_MP3);
coder.setSampleRate(22050);
coder.setChannels(1);
retval = coder.open();
assertTrue("could not open coder", retval >= 0);
retval = container.writeHeader();
assertTrue("could not write header", retval >= 0);
retval = container.writeTrailer();
assertTrue("could not write header", retval >= 0);
retval = coder.close();
assertTrue("could not close coder", retval >= 0);
retval = container.close();
assertTrue("could not close the file", retval >= 0);
}
@Test
public void testWriteTrailerWithNoWriteHeaderDoesNotCrashJVM()
{
IContainer container = IContainer.make();
int retval = -1;
retval = container.open(this.getClass().getName() + "_" + this.getName() + ".flv", IContainer.Type.WRITE, null);
assertTrue("could not open file", retval >= 0);
// Should give a warning and fail, but should NOT crash the JVM like it used to.
retval = container.writeTrailer();
assertTrue("could not write header", retval < 0);
retval = container.close();
assertTrue("could not close the file", retval >= 0);
}
@Test
public void testOpenFileSetsInputContainer()
{
IContainer container = null;
IContainerFormat fmt = null;
int retval = -1;
container = IContainer.make();
// now, try opening a container.
retval =
container.open("file:" + this.getClass().getName() + "_" + this.getName() + ".flv",
IContainer.Type.WRITE,
null);
assertTrue("could not open file for writing", retval >= 0);
fmt = container.getContainerFormat();
assertNotNull(fmt);
assertEquals("flv", fmt.getOutputFormatShortName());
retval = container.close();
assertTrue("could not close file", retval >= 0);
retval = container.open("file:" + mSampleFile, IContainer.Type.READ, fmt);
assertTrue("could not open file for writing", retval >= 0);
fmt = container.getContainerFormat();
assertNotNull(fmt);
assertEquals("flv", fmt.getInputFormatShortName());
retval = container.close();
assertTrue("could not close file", retval >= 0);
}
@Test
public void testQueryStreamMetaData()
{
IContainer container = IContainer.make();
int retval = -1;
retval = container.open(mSampleFile, IContainer.Type.READ, null);
assertTrue("could not open file", retval >= 0);
没有合适的资源?快使用搜索试试~ 我知道了~
xuggle学习官方例子,包含jar包
共113个文件
java:51个
svn-base:41个
all-wcprops:5个
需积分: 10 9 下载量 75 浏览量
2018-09-04
10:55:29
上传
评论
收藏 43.02MB ZIP 举报
温馨提示
xuggle学习官方例子,很详细,包括jar包中各种类的使用及junit,在demo包下包含音频、视频解码的详细例子。
资源推荐
资源详情
资源评论
收起资源包目录
xuggle学习官方例子,包含jar包 (113个子文件)
all-wcprops 5KB
all-wcprops 965B
all-wcprops 480B
all-wcprops 105B
all-wcprops 98B
.classpath 1009B
entries 5KB
entries 1KB
entries 584B
entries 267B
entries 231B
xuggle-xuggler-5.4.jar 38.45MB
log4j-1.2.17.jar 478KB
commons-cli-1.2.jar 40KB
slf4j-api-1.6.4.jar 25KB
slf4j-log4j12-1.5.8.jar 9KB
ContainerTest.java 23KB
DecodeAndPlayAudioAndVideo.java 17KB
ConverterFactoryTest.java 16KB
DecodeAndPlayAudioAndVideo.java 14KB
SimpleMediaFileTest.java 13KB
UtilsTest.java 13KB
DecodeAndPlayVideo.java 12KB
DecodeAndPlayVideo.java 12KB
StreamCoderTest.java 12KB
XugglerIOTest.java 11KB
DecodeAndCaptureFrames.java 11KB
DecodeAndCaptureFrames.java 11KB
ConverterFactoryExhaustiveTest.java 10KB
ContainerFormatTest.java 9KB
CaptureScreenToFile.java 9KB
IMediaDataTest.java 9KB
FileProtocolHandlerTest.java 9KB
VideoPictureTest.java 9KB
CaptureScreenToFile.java 8KB
DecodeAndPlayAudio.java 7KB
DecodeAndPlayAudio.java 7KB
StreamTest.java 7KB
AudioSamplesTest.java 7KB
MetaDataTest.java 7KB
MultiThreadedReadingExhaustiveTest.java 6KB
ConverterExhaustiveTest.java 6KB
MultiThreadedWritingExhaustiveTest.java 6KB
ConverterTest.java 6KB
Helper.java 6KB
PacketTest.java 6KB
XugglerIOExhaustiveTest.java 6KB
RationalTest.java 5KB
GetContainerInfo.java 5KB
GetContainerInfo.java 5KB
NullProtocolHandlerTest.java 5KB
StreamCoderRegressionTest.java 5KB
URLProtocolHandlerTest.java 5KB
ContainerExhaustiveTest.java 4KB
CodecTest.java 4KB
RTMPPublishingExhaustiveTest.java 4KB
InterruptingExhaustiveTest.java 4KB
ContainerSeekExhaustiveTest.java 4KB
VideoImage.java 3KB
VideoImage.java 3KB
MediaDataWrapperTest.java 3KB
VideoResamplerTest.java 3KB
ErrorTest.java 2KB
ConfigurationTest.java 2KB
IndexEntryTest.java 1KB
package-info.java 1KB
package-info.java 1KB
1.mp3 2.11MB
1.mp3 2.11MB
org.eclipse.jdt.core.prefs 629B
.project 388B
log4j.properties 2KB
ContainerTest.java.svn-base 21KB
ConverterFactoryTest.java.svn-base 16KB
MemoryAllocationExhaustiveTest.java.svn-base 14KB
SimpleMediaFileTest.java.svn-base 12KB
StreamCoderTest.java.svn-base 12KB
UtilsTest.java.svn-base 12KB
ConverterFactoryExhaustiveTest.java.svn-base 10KB
RegressionsExhaustiveTest.java.svn-base 10KB
XugglerIOTest.java.svn-base 10KB
ContainerFormatTest.java.svn-base 9KB
IMediaDataTest.java.svn-base 9KB
FileProtocolHandlerTest.java.svn-base 9KB
VideoPictureTest.java.svn-base 9KB
AudioSamplesTest.java.svn-base 7KB
CreateAudioFileExhaustiveTest.java.svn-base 7KB
MultiThreadedReadingExhaustiveTest.java.svn-base 6KB
StreamTest.java.svn-base 6KB
ConverterExhaustiveTest.java.svn-base 6KB
MultiThreadedWritingExhaustiveTest.java.svn-base 6KB
ConverterTest.java.svn-base 6KB
MetaDataTest.java.svn-base 6KB
XugglerIOExhaustiveTest.java.svn-base 6KB
Helper.java.svn-base 5KB
RationalTest.java.svn-base 5KB
PacketTest.java.svn-base 5KB
NullProtocolHandlerTest.java.svn-base 5KB
URLProtocolHandlerTest.java.svn-base 5KB
StreamCoderRegressionTest.java.svn-base 4KB
共 113 条
- 1
- 2
资源评论
抱书眠
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- STM8L101F3P6单片机+CC1100模块433M遥控器设计硬件(原理图+PCB)工程文件.zip
- 上传下载铁人下载系统 Liuxing 1.0-liuxing1.0.rar
- 南京邮电大学数学实验实力雄厚,凭借其优秀的师资力量、丰富的实践教学资源和卓越的科研成果,成为国内一流的数学实验教学和科研基地
- 【火爆朋友圈的今天吃什么源码 v1.0】随机的为用户带来每一天的用餐选择和推荐.rar
- MPU6050中文版数据手册
- 上传下载手机电影下载-mobiledy.rar
- 响应式旅游网站源码下载 马尔代夫旅游网站.rar
- CMS小涴熊漫画连载系统漫画网站源码 带采集API.rar
- 福袋点点.apk
- 基于STM32的电子秤采用0.96寸OLED显示UI界面源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功