Commit Graph

48 Commits

Author SHA1 Message Date
Michael Niedermayer
2156161056 Merge commit '00431bf874e1044b01e09a2266ef85d4ff8d44cc'
* commit '00431bf874e1044b01e09a2266ef85d4ff8d44cc':
  ismindex: handle time discontinuities and nonzero start time

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-15 22:39:31 +02:00
Mika Raento
00431bf874 ismindex: handle time discontinuities and nonzero start time
The input file may not have consistent start times, stream durations and
chunk durations. This patch at least removes negative durations that
make chromecast unhappy, and correctly sets starting time on chunks so
that the split (or .ismf) outputs match the manifest.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-15 19:54:36 +03:00
Michael Niedermayer
1a59a28838 Merge commit 'fcf597625c7a991ca389f3a9b8ff4f5e383301c0'
* commit 'fcf597625c7a991ca389f3a9b8ff4f5e383301c0':
  ismindex: Avoid writing ismf files if no base name has been specified

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-08 00:45:33 +02:00
Martin Storsjö
fcf597625c ismindex: Avoid writing ismf files if no base name has been specified
Previously, this could create files named "(null).ismf", if the -ismf
parameter is specified (before an input file name), but without
specifying any base name.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-07 23:20:30 +03:00
Michael Niedermayer
0940066b80 Merge commit 'b21e989a3c076d94cfdde0303724db841dd60cad'
* commit 'b21e989a3c076d94cfdde0303724db841dd60cad':
  ismindex: produce .ismf file

Conflicts:
	tools/ismindex.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 12:14:42 +02:00
Mika Raento
b21e989a3c ismindex: produce .ismf file
This is a non-standard file that maps the MSS segment names to offsets
in the ISMV file. This can be used to build a custom MSS streaming
server without splitting the ISMV into separate files.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-05 09:54:55 +03:00
Michael Niedermayer
d9a416fa1a Merge commit 'c487972ed0e1eaebdbe4a13cdd191e119be0b19c'
* commit 'c487972ed0e1eaebdbe4a13cdd191e119be0b19c':
  ismindex: recover from completely empty streams

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-03 15:04:34 +02:00
Mika Raento
c487972ed0 ismindex: recover from completely empty streams
This creates best-effort results from input that is missing stream
contents, there are warnings printed when this happens.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-03 12:06:40 +03:00
Michael Niedermayer
35469835bb Merge commit 'e48d1ea541be4592ebac89875557407ca958b7a9'
* commit 'e48d1ea541be4592ebac89875557407ca958b7a9':
  ismindex: improve diagnostics

Conflicts:
	tools/ismindex.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 11:20:13 +02:00
Mika Raento
e48d1ea541 ismindex: improve diagnostics
This improves error messages for completely and somewhat broken inputs.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-02 09:48:44 +03:00
Michael Niedermayer
60dbed6067 Merge commit '4b1f5e5090abed6c618c8ba380cd7d28d140f867'
* commit '4b1f5e5090abed6c618c8ba380cd7d28d140f867':
  cosmetics: Write NULL pointer inequality checks more compactly

Conflicts:
	libavcodec/dvdsubdec.c
	libavcodec/h263dec.c
	libavcodec/libxvid.c
	libavcodec/rv10.c
	libavcodec/utils.c
	libavformat/format.c
	libavformat/matroskadec.c
	libavformat/segment.c
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 21:26:12 +02:00
Gabriel Dume
4b1f5e5090 cosmetics: Write NULL pointer inequality checks more compactly
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-15 05:34:13 -07:00
Michael Niedermayer
524eeaca22 Merge commit 'f920d089535bf7cf10aeda900cc43201c5e18cd0'
* commit 'f920d089535bf7cf10aeda900cc43201c5e18cd0':
  ismindex: Add an option for outputting files elsewhere than in the current directory

Conflicts:
	tools/ismindex.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 21:02:56 +02:00
Michael Niedermayer
0d35d5ab1b Merge commit '6bc4934b75dde9354ee16a6e700ebe6775abf69e'
* commit '6bc4934b75dde9354ee16a6e700ebe6775abf69e':
  ismindex: Allow adding a path prefix to the generated .ism file

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 20:37:06 +02:00
Martin Storsjö
f920d08953 ismindex: Add an option for outputting files elsewhere than in the current directory
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-03 20:13:27 +03:00
Martin Storsjö
6bc4934b75 ismindex: Allow adding a path prefix to the generated .ism file
This allows storing the .ismv/.isma/.ismc files separately from
the .ism file on a server, without having to manually edit the
.ism file after generating it with the ismindex tool.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-03 20:13:13 +03:00
Michael Niedermayer
b395167d56 tools/ismindex: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 18:47:24 +02:00
Michael Niedermayer
922596e3da Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ismindex: Change the duration field to int64_t

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-05 11:35:39 +02:00
Michael Niedermayer
47a57c6832 Merge commit '583a287f6f48f263859df142e6f90993e4217c72'
* commit '583a287f6f48f263859df142e6f90993e4217c72':
  ismindex: Calculate the file duration among the included tracks

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-05 11:29:02 +02:00
Michael Niedermayer
5de251a3e3 Merge commit 'd347a7b248d4ffdc278373fecf033b0ade030343'
* commit 'd347a7b248d4ffdc278373fecf033b0ade030343':
  ismindex: Use the individual stream duration instead of the global one

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-05 11:14:26 +02:00
Martin Storsjö
a4435f9235 ismindex: Change the duration field to int64_t
This reduces the risk for overflow in pathlogical cases.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-05 00:01:28 +03:00
Martin Storsjö
583a287f6f ismindex: Calculate the file duration among the included tracks
If the input file contains other tracks (non video/audio) that
aren't included in ismindex, the global file duration as returned
by libavformat might not be equal to the maximum of the duration
of the actual included tracks.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-05 00:01:18 +03:00
Martin Storsjö
d347a7b248 ismindex: Use the individual stream duration instead of the global one
The stream duration is used for calculating the duration of the
last fragment easily without manually parsing anything else than
the mfra/tfra atoms. When the global file duration was used
previously, the duration of the last fragment could end up wrong
if the streams weren't equally long.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-05 00:01:08 +03:00
Thilo Borgmann
d814a839ac Reinstate proper FFmpeg license for all files. 2013-08-30 15:47:38 +00:00
Michael Niedermayer
1dfb34db6d Merge commit 'bea3d6f4363ff1bbbd99c1717f7498b9fdb12cfc'
* commit 'bea3d6f4363ff1bbbd99c1717f7498b9fdb12cfc':
  ismindex: Replace mkdir ifdeffery by os_support.h #include

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-06 14:50:27 +02:00
Diego Biurrun
bea3d6f436 ismindex: Replace mkdir ifdeffery by os_support.h #include
os_support.h contains more precise workarounds for non-POSIX mkdir().
2013-08-05 11:38:00 +02:00
Michael Niedermayer
ebea370dc3 ismindex: check mkdir()s return code
Fixes CID733724
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-21 19:53:18 +02:00
Michael Niedermayer
bc7330a840 tools/ismindex: dont ignore return code of write_fragments()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-21 19:49:22 +02:00
Michael Niedermayer
905e7eb413 Merge commit 'f099d3d1d5466bd63f4ab36270d169ff9ea613b8'
* commit 'f099d3d1d5466bd63f4ab36270d169ff9ea613b8':
  Add av_log_{ask_for_sample|missing_feature} replacements to libavutil
  ismindex: Check the return value of allocations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-14 12:15:02 +01:00
Michael Niedermayer
360d71707f Merge commit '7c147900b86c0f1cf030b7b844c670649c80c191'
* commit '7c147900b86c0f1cf030b7b844c670649c80c191':
  ismindex: Factorize code for printing chunk duration lists

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-14 11:58:17 +01:00
Michael Niedermayer
33ecf7ab59 Merge commit 'f05e9beb4ab5fb8b9d5ba81405e9fca901832591'
* commit 'f05e9beb4ab5fb8b9d5ba81405e9fca901832591':
  ismindex: Rename structs and fields from "file" to "track"
  avpacket: copy side data type and size in av_dup_packet

Conflicts:
	libavcodec/avpacket.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-14 11:48:42 +01:00
Martin Storsjö
4abf6fa095 ismindex: Check the return value of allocations
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-13 20:41:25 +02:00
Martin Storsjö
7c147900b8 ismindex: Factorize code for printing chunk duration lists
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-13 20:41:19 +02:00
Martin Storsjö
f05e9beb4a ismindex: Rename structs and fields from "file" to "track"
The tool nowadays supports more than one track per file,
this makes reading the code slightly less confusing.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-13 20:41:11 +02:00
Frederic Jean
c53e8d9029 Include fix for building ismindex under MinGW
Include cmdutils.h so we can build under windows. 

Based on fix for https://ffmpeg.org/trac/ffmpeg/ticket/256
2013-02-27 10:13:09 -07:00
Michael Niedermayer
224afddc7c ismindex: check return value of avio_open_dyn_buf()
Fixes CID733723
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 02:53:43 +01:00
Michael Niedermayer
1c66807636 Merge commit 'd488c3bcbaf7ddda42597e014deb661a7e9e2112'
* commit 'd488c3bcbaf7ddda42597e014deb661a7e9e2112':
  configure: support Bitrig OS
  yuv2rgb: handle line widths that are not a multiple of 4.
  graph2dot: Use the fallback getopt implementation if needed
  tools: Include io.h for open/read/write/close if unistd.h doesn't exist
  testprogs: Remove unused includes
  qt-faststart: Use other seek/tell functions on MSVC than on mingw
  ismindex: Include direct.h for _mkdir on windows
  sdp: Use static const char arrays instead of pointers to strings
  x86: avcodec: Drop silly "_mmx" suffixes from filenames
  x86: avcodec: Drop silly "_sse" suffixes from filenames
  sdp: Include profile-level-id for H264
  utvideoenc: use ff_huff_gen_len_table
  huffman: add ff_huff_gen_len_table
  cllc: simplify/fix swapped data buffer allocation.
  rtpdec_h264: Don't set the pixel format
  h264: Check that the codec isn't null before accessing it
  audio_frame_queue: Define af_queue_log_state before using it

Conflicts:
	libavcodec/audio_frame_queue.c
	libavcodec/h264.c
	libavcodec/huffman.h
	libavcodec/huffyuv.c
	libavcodec/utvideoenc.c
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 18:04:34 +02:00
Martin Storsjö
bff714ad4c ismindex: Include direct.h for _mkdir on windows
The Windows SDK in MSVC doesn't have mkdir, only _mkdir, and
MSDN says one should include direct.h to use it.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-29 00:23:18 +03:00
Michael Niedermayer
7a72695c05 Merge commit '36ef5369ee9b336febc2c270f8718cec4476cb85'
* commit '36ef5369ee9b336febc2c270f8718cec4476cb85':
  Replace all CODEC_ID_* with AV_CODEC_ID_*
  lavc: add AV prefix to codec ids.

Conflicts:
	doc/APIchanges
	doc/examples/decoding_encoding.c
	doc/examples/muxing.c
	ffmpeg.c
	ffprobe.c
	ffserver.c
	libavcodec/8svx.c
	libavcodec/avcodec.h
	libavcodec/dnxhd_parser.c
	libavcodec/dvdsubdec.c
	libavcodec/error_resilience.c
	libavcodec/h263dec.c
	libavcodec/libvorbisenc.c
	libavcodec/mjpeg_parser.c
	libavcodec/mjpegenc.c
	libavcodec/mpeg12.c
	libavcodec/mpeg4videodec.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/pcm.c
	libavcodec/r210dec.c
	libavcodec/utils.c
	libavcodec/v210dec.c
	libavcodec/version.h
	libavdevice/alsa-audio-dec.c
	libavdevice/bktr.c
	libavdevice/v4l2.c
	libavformat/asfdec.c
	libavformat/asfenc.c
	libavformat/avformat.h
	libavformat/avidec.c
	libavformat/caf.c
	libavformat/electronicarts.c
	libavformat/flacdec.c
	libavformat/flvdec.c
	libavformat/flvenc.c
	libavformat/framecrcenc.c
	libavformat/img2.c
	libavformat/img2dec.c
	libavformat/img2enc.c
	libavformat/ipmovie.c
	libavformat/isom.c
	libavformat/matroska.c
	libavformat/matroskadec.c
	libavformat/matroskaenc.c
	libavformat/mov.c
	libavformat/movenc.c
	libavformat/mp3dec.c
	libavformat/mpeg.c
	libavformat/mpegts.c
	libavformat/mxf.c
	libavformat/mxfdec.c
	libavformat/mxfenc.c
	libavformat/nsvdec.c
	libavformat/nut.c
	libavformat/oggenc.c
	libavformat/pmpdec.c
	libavformat/rawdec.c
	libavformat/rawenc.c
	libavformat/riff.c
	libavformat/sdp.c
	libavformat/utils.c
	libavformat/vocenc.c
	libavformat/wtv.c
	libavformat/xmv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 22:45:46 +02:00
Anton Khirnov
36ef5369ee Replace all CODEC_ID_* with AV_CODEC_ID_* 2012-08-07 16:00:24 +02:00
Michael Niedermayer
039e9fe01c Merge remote-tracking branch 'qatar/master'
* qatar/master: (29 commits)
  lavfi: reclassify showfiltfmts as a TESTPROG
  graph2dot: fix printf format specifier
  swscale: yuv2planeX 8bit >=sse2 functions need aligned stack on x86-32.
  vp8: loopfilter >=sse2 functions need aligned stack on x86-32.
  amr: remove shift out of the AMR_BIT() macro.
  dsputilenc: group yasm and inline asm function pointer assignment.
  mov: use forward declaration of a function instead of a table.
  Clarify Doxygen comment for FF_API_* #defines.
  configure: simplify get_version()
  Create version.h headers for libraries that lack them
  gitignore: Use full path instead of relative path to specify patterns
  mpegvideo: remove VLAs
  Add XTEA encryption support in libavutil
  Add Blowfish encryption support in libavutil
  eval: Add the isinf() function and tests for it
  flacdec: move lpc filter to flacdsp
  flacdec: split off channel decorrelation as flacdsp
  avplay: Add an option for not limiting the input buffer size
  FATE: add a test for WMA cover art.
  FATE: add a test for apetag cover art
  ...

Conflicts:
	.gitignore
	configure
	ffplay.c
	libavcodec/Makefile
	libavcodec/error_resilience.c
	libavcodec/mpegvideo.c
	libavcodec/ratecontrol.c
	libavdevice/avdevice.h
	libavfilter/Makefile
	libavfilter/filtfmts.c
	libavfilter/version.h
	libavformat/mov.c
	libavformat/version.h
	libavutil/Makefile
	libavutil/avutil.h
	libavutil/version.h
	libswscale/swscale.h
	libswscale/x86/swscale_mmx.c
	tests/fate/libavutil.mak
	tests/lavfi-regression.sh
	tools/graph2dot.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 21:03:28 +02:00
Martin Storsjö
30327865f3 ismindex: Verify that all bitrate variants match
In Smooth Streaming, the fragments are addressed by time, and
the manifest only stores one list of time offests for all streams,
so all streams need to have identical fragment offsets. Warn if
this isn't the case, so that the user can fix the files instead of
getting failures at runtime when the fragments can't be found.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-03 22:46:58 +03:00
Martin Storsjö
1be8c90847 ismindex: Properly report errors reading the MFRA atom
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-03 22:46:53 +03:00
Michael Niedermayer
fcd08262fd tests and tools: cleanup ffmpeg reference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-27 15:42:55 +02:00
Martin Storsjö
b9e79a3f4e ismindex: Fix build on mingw
Signed-off-by: Martin Storsjö <martin@martin.st>
(cherry picked from commit 8801fac365)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-26 22:25:29 +01:00
Martin Storsjö
8801fac365 ismindex: Fix build on mingw
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-26 00:04:28 +02:00
Diego Biurrun
4e81b5f517 tools: K&R reformatting cosmetics 2012-01-25 15:31:11 +01:00
Martin Storsjö
33ec9ef96d Add a tool for creating smooth streaming manifests
It can also optionally split the file into individual fragments,
which allows it to be served from any web server without any
server side support.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-25 12:15:42 +02:00