Commit Graph

26 Commits

Author SHA1 Message Date
Vittorio Giovara 87e5d8d78c ismindex: Use the correct abs() version 2015-08-31 15:24:56 +02:00
Martin Storsjö 30a041887f ismindex: Calculate the pts duration of trun atoms, not the dts duration
Since the duration is compared to the tfra durations/intervals which
are expressed in pts, calculate that here as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:27:22 +02:00
Mika Raento 979932378a ismindex: use tfhd default duration if no sample duration
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-16 09:22:22 +03:00
Mika Raento 2bc220958c ismindex: handle discontinuous streams better
Read the fragment duration from the trun sample data, rather than
assuming that there are no gaps.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-09 11:21:49 +03: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
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
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
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
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
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
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
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
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
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
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
Anton Khirnov 36ef5369ee Replace all CODEC_ID_* with AV_CODEC_ID_* 2012-08-07 16:00:24 +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
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