Commit Graph

213 Commits

Author SHA1 Message Date
Aurelien Jacobs 6bef5f9b96 matroskadec: seek to the last position known in the index before resorting to
full cluster parsing when seeking after the end of index

Originally committed as revision 14994 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-27 19:57:42 +00:00
Aurelien Jacobs 8e44312d3f matroskadec: index timestamps are supposed to be in the timebase of the stream
Originally committed as revision 14984 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-26 20:32:27 +00:00
Aurelien Jacobs 244ee48a82 matroskadec: unset matroska->done when seeking
just in case someone try to seek back after reaching the end of file

Originally committed as revision 14960 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-25 00:17:31 +00:00
Aurelien Jacobs 0f646a2233 matroskadec: full seeking support in index-less files
when trying to seek past the last index entry, just parse more clusters to add them to the index, until an index entry match the desired position

Originally committed as revision 14959 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-25 00:15:49 +00:00
Aurelien Jacobs 8bc98ba92b matroskadec: on the fly index construction for index-less files
each cluster that is read and that contains a video key frame is added
to the index

Originally committed as revision 14957 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-25 00:09:08 +00:00
Aurelien Jacobs dfbbbdc0bf matroskadec: don't try to seek to negative timestamp
matroska timestamps are unsigned

Originally committed as revision 14956 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-24 23:57:29 +00:00
Aurelien Jacobs 653fb2f80c matroskadec: move setting of matroska->done inside matroska_parse_cluster()
Originally committed as revision 14955 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-24 23:54:14 +00:00
Reimar Döffinger 7b571fd7a4 Mark "matroska" probe data string constant.
Originally committed as revision 14949 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-24 17:19:46 +00:00
Aurelien Jacobs ba18b99ffa matroskadec: make aac_profiles array const
Originally committed as revision 14943 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-24 13:12:41 +00:00
Aurelien Jacobs 5972945197 convert every muxer/demuxer to write/read sample_aspect_ratio from/to
the corresponding AVStream instead of AVCodecContext

Originally committed as revision 14933 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-23 23:43:20 +00:00
Aurelien Jacobs 28f27e0c0c matroskadec: fail cleanly when the required compression lib is not compiled in
Originally committed as revision 14870 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-20 23:08:07 +00:00
Aurelien Jacobs dc3e0211ed matroskadec: stop parsing when skipping en element crossing over the end of file
Originally committed as revision 14869 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-20 22:30:15 +00:00
Aurelien Jacobs eb9cf50a74 matroska: add support for most variants of PCM
Originally committed as revision 14862 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-20 00:49:45 +00:00
Aurelien Jacobs b49d17b77a matroskadec: handle EBML_ID_VOID and EBML_ID_CRC32 in a generic way
Originally committed as revision 14861 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-20 00:44:25 +00:00
Aurelien Jacobs 5df3cc6f80 matroskadec: list some more ebml IDs found in the wild and that we ignore
This avoid printing some warnings about unknow IDs while we in fact know
the IDs but just want to knowingly ignore them.

Originally committed as revision 14738 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-13 21:15:15 +00:00
Aurelien Jacobs 131f1cb2a9 matroskadec: parse available blocks even when cluster parsing failed
This way, we still read the few complete blocks out of a truncated
cluster at the end of a truncated file.

Originally committed as revision 14723 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-13 09:36:45 +00:00
Aurelien Jacobs 44015c56a6 matroskadec: add basic tags support (metadata)
Originally committed as revision 14672 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-08 23:50:38 +00:00
Aurelien Jacobs 00a3431cbb matroskadec: use av_freep(&x) instead of av_free(x);x=NULL
Originally committed as revision 14633 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-06 00:21:10 +00:00
Anton Khirnov b87025399c matroskadec: replace matroska_queue_packet with a single call to dynarray_add
patch by Anton Khirnov  wyskas _at_ gmail _dot_ com

Originally committed as revision 14632 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-06 00:17:47 +00:00
Diego Biurrun 5968d2dd1e misc spelling/grammar fixes
Originally committed as revision 14616 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 08:28:57 +00:00
Aurelien Jacobs cc70d14b3d matroskadec: remove useless num_streams
Originally committed as revision 14611 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:43:01 +00:00
Aurelien Jacobs 88cca98947 matroskadec: expand useless ebml_read_element_id() wrapper
Originally committed as revision 14610 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:58 +00:00
Aurelien Jacobs 33ac07ea08 matroskadec: simplify matroska_ebmlnum_sint()
Originally committed as revision 14609 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:55 +00:00
Aurelien Jacobs c1e01133f6 matroskadec: implement matroska_ebmlnum_uint() using ebml_read_num()
Originally committed as revision 14608 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:52 +00:00
Aurelien Jacobs cc8be50637 matroska: expand useless define for MS compat codec id strings
Originally committed as revision 14607 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:49 +00:00
Aurelien Jacobs ff33c5c565 matroskadec: update copyright year and related comments
Originally committed as revision 14605 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:43 +00:00
Aurelien Jacobs 737c40da20 matroskadec: reorder some functions in a more logical order
Originally committed as revision 14604 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:39 +00:00
Aurelien Jacobs 1b6d23bbcb matroskadec: remove now useless wrapper ebml_read_element_length()
Originally committed as revision 14603 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:36 +00:00
Aurelien Jacobs 66cfc3856c matroskadec: remove now useless wrapper ebml_read_seek()
Originally committed as revision 14602 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:33 +00:00
Aurelien Jacobs 5c5373cea4 matroskadec: remove now useless peek_id
Originally committed as revision 14601 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:29 +00:00
Aurelien Jacobs 3879763833 matroskadec: don't try to re-read already parsed ID in matroska_parse_cluster()
Originally committed as revision 14600 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:26 +00:00
Aurelien Jacobs 6314cca006 matroskadec: remove now unused parameter 'once' from ebml_parse_nest()
Originally committed as revision 14599 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:23 +00:00
Aurelien Jacobs c4d3d9ba95 matroskadec: directly use ebml_parse() or ebml_parse_id() where it's enough
Originally committed as revision 14598 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:20 +00:00
Aurelien Jacobs 66a37e060b matroskadec: new ebml_parse() function, centralize ebml_read_element_id() calls
Originally committed as revision 14597 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:17 +00:00
Aurelien Jacobs 9bcb92ca6b matroskadec: rename ebml_parse() to ebml_parse_nest()
Originally committed as revision 14596 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:13 +00:00
Aurelien Jacobs c005b3f224 matroskadec: don't care about the number of bytes read by ebml_read_element_id()
Originally committed as revision 14595 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:10 +00:00
Aurelien Jacobs 592110c26c matroskadec: simplify check for hierarchy level
Originally committed as revision 14594 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:08 +00:00
Aurelien Jacobs f7b9687cbb matroskadec: cosmetics: consistent style for function declarations
Originally committed as revision 14593 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:05 +00:00
Aurelien Jacobs 104be2404e matroskadec: Use string instead of char table as probe data comparison source.
Originally committed as revision 14592 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:42:02 +00:00
Aurelien Jacobs eb05caccf2 matroskadec: use an EbmlBin as parameter to ebml_read_binary()
Originally committed as revision 14591 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:59 +00:00
Aurelien Jacobs c6cd2b3d22 matroskadec: extract common code out of ebml_read_*()
Originally committed as revision 14590 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:55 +00:00
Aurelien Jacobs ba5a1f99cc matroskadec: simplify/cleanup error logging in ebml_read_*()
Originally committed as revision 14589 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:52 +00:00
Aurelien Jacobs 54d8869d3a matroskadec: remove now useless expected_id parameter from ebml_parse()
Originally committed as revision 14588 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:50 +00:00
Aurelien Jacobs 4dc9e183dd matroskadec: expand useless ebml_peek_id() wrapper
Originally committed as revision 14587 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:46 +00:00
Aurelien Jacobs 3856e7c4aa matroskadec: remove unused levelup parameter from ebml_read_element_id()
Originally committed as revision 14586 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:43 +00:00
Aurelien Jacobs 44cea7651b matroskadec: extract read_level_up out of ebml_read_element_id
Originally committed as revision 14585 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:40 +00:00
Aurelien Jacobs dfde36a33e matroskadec: remove useless levelup check
Originally committed as revision 14584 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:37 +00:00
Aurelien Jacobs 051ef5cef5 matroskadec: remove useless check for cluster presence
Originally committed as revision 14583 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:34 +00:00
Aurelien Jacobs 28ba69e097 matroskadec: cosmetics: placement of 'else if'
Originally committed as revision 14582 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:31 +00:00
Aurelien Jacobs 7eb9b068eb matroskadec: remove some useless empty lines
Originally committed as revision 14581 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:28 +00:00
Aurelien Jacobs 5efc8ec850 matroskadec: remove some useless or out of date comments
Originally committed as revision 14580 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:25 +00:00
Aurelien Jacobs 8f35a2c022 matroskadec: cosmetics
Originally committed as revision 14579 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:22 +00:00
Aurelien Jacobs c171af9bd7 matroskadec: remove unused struct name
Originally committed as revision 14578 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:19 +00:00
Aurelien Jacobs 1e49ee4270 matroskadec: remove now unused context fields
Originally committed as revision 14577 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:16 +00:00
Aurelien Jacobs 70109c0d48 matroskadec: remove useless initialization
Originally committed as revision 14576 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:13 +00:00
Aurelien Jacobs 16f97ab050 matroskadec: cosmetics: remove useless braces
Originally committed as revision 14575 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:10 +00:00
Aurelien Jacobs 3143f13345 matroskadec: remove some unused ebml funcs
Originally committed as revision 14574 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:07 +00:00
Aurelien Jacobs 209472b45d matroskadec: use generic parser to parse clusters
Originally committed as revision 14573 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:05 +00:00
Aurelien Jacobs f06a488647 matroskadec: use generic parser inside matroska_execute_seekhead()
Originally committed as revision 14572 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:41:01 +00:00
Aurelien Jacobs ce6f28bd35 matroskadec: use generic parser to parse matroska from toplevel
Originally committed as revision 14571 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:58 +00:00
Aurelien Jacobs 9c25bafacb matroskadec: move context settings to matroska_read_header()
Originally committed as revision 14570 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:55 +00:00
Aurelien Jacobs d88d806bd1 matroskadec: cosmetics: indentation of matroska_read_header()
Originally committed as revision 14569 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:52 +00:00
Aurelien Jacobs 9a9a3b03a6 matroskadec: move declaration to upper block
Originally committed as revision 14568 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:49 +00:00
Aurelien Jacobs a636a56bf4 matroskadec: invert a test
Originally committed as revision 14567 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:46 +00:00
Aurelien Jacobs 4348571b1a matroskadec: cosmetics: indentation of matroska_execute_seekhead()
Originally committed as revision 14566 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:43 +00:00
Aurelien Jacobs 82113343a7 matroskadec: remove useless dummy_level variable
Originally committed as revision 14565 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:40 +00:00
Aurelien Jacobs 13b350a3a4 matroskadec: use generic parser to parse seekhead
Originally committed as revision 14564 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:36 +00:00
Aurelien Jacobs 8ecdab8f5a matroskadec: declare var where it's used
Originally committed as revision 14563 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:33 +00:00
Aurelien Jacobs 2cbc8811ab matroskadec: use generic parser to parse tracks
Originally committed as revision 14562 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:31 +00:00
Aurelien Jacobs 29708581fc matroskadec: use generic parser to parse info
Originally committed as revision 14561 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:27 +00:00
Aurelien Jacobs b414cb892e matroskadec: use generic parser to parse attachments
Originally committed as revision 14560 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:24 +00:00
Aurelien Jacobs 6bbd7c7b79 matroskadec: use generic parser to parse chapters
Originally committed as revision 14559 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:21 +00:00
Aurelien Jacobs 434d496a8a matroskadec: use generic parser to parse tags
Originally committed as revision 14558 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:18 +00:00
Aurelien Jacobs e5929fdf62 matroskadec: use generic parser to parse index
Originally committed as revision 14557 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:15 +00:00
Aurelien Jacobs 009ecd504e matroskadec: return pointer instead of index in matroska_find_track_by_num()
Originally committed as revision 14556 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:12 +00:00
Aurelien Jacobs 28f450a992 matroskadec: create new AVStream earlier
Originally committed as revision 14555 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:09 +00:00
Aurelien Jacobs fc4d335f6d matroskadec: store an AVStream pointer instead of a stream index
Originally committed as revision 14554 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:06 +00:00
Aurelien Jacobs 6351132435 matroskadec: use generic ebml parser to parse ebml header
Originally committed as revision 14553 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:02 +00:00
Aurelien Jacobs 789ed100d7 matroskadec: add an ebml generic parser
Originally committed as revision 14552 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:40:00 +00:00
Aurelien Jacobs 6e35ae2a74 matroskadec: remove unused is_bframe flag
Originally committed as revision 14551 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:39:55 +00:00
Aurelien Jacobs 4eff97439b matroskadec: simplify flag default
Originally committed as revision 14550 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:39:53 +00:00
Aurelien Jacobs ead3006257 matroskadec: remove storage of various unused flags
Originally committed as revision 14549 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:39:50 +00:00
Aurelien Jacobs 5f8e022701 matroskadec: use more robust av_strlcpy() instead of strcpy()
Originally committed as revision 14548 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:39:47 +00:00
Aurelien Jacobs f009e36f75 matroska: add support for V_QUICKTIME track type
Originally committed as revision 14429 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-27 15:11:04 +00:00
Evgeniy Stepanov 5e8477b011 matroskadec: decode track private data if needed
original patch by Evgeniy Stepanov  eugeni.stepanov _at_ gmail _dot_ com

Originally committed as revision 13892 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-22 15:52:28 +00:00
Evgeniy Stepanov 935ec5a1d5 matroskadec: move buffer decoding code to a separate function
original patch by Evgeniy Stepanov  eugeni.stepanov _at_ gmail.com

Originally committed as revision 13891 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-22 15:49:44 +00:00
Aurelien Jacobs 51e1cc16d3 matroskadec: fix a memory leak
Originally committed as revision 13890 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-22 15:46:36 +00:00
Aurelien Jacobs ded4241bb0 matroskadec: remove some useless code
Originally committed as revision 13783 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-16 23:11:02 +00:00
Joakim Plate de6a9a2673 matroskadec: set cur_dts after seek
patch by elupus   elupus _at_ ecce _dot_ se

Originally committed as revision 13748 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-11 19:54:17 +00:00
Aurelien Jacobs 03b9d94e86 matroskadec: remove some useless code
Originally committed as revision 13659 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-04 23:24:55 +00:00
Aurelien Jacobs e9b56825be cosmetics: indentation
Originally committed as revision 13658 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-04 23:15:08 +00:00
Aurelien Jacobs fc4738ae96 matroskadec: don't remove dummy level when none was added
Originally committed as revision 13657 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-04 23:11:47 +00:00
Stefano Sabatini bde15e74de Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
patch by Stefano Sabatini, stefano.sabatini-lala poste.it
along with some spelling/consistency fixes for the long names by me

Originally committed as revision 13649 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-03 16:20:54 +00:00
Aurelien Jacobs 401cdd519c adjust comment to reality
Originally committed as revision 13647 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-03 15:14:21 +00:00
Aurelien Jacobs 94f6c011d6 matroskadec: sane default value for track->time_scale
Originally committed as revision 13646 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-03 15:09:30 +00:00
Aurelien Jacobs ff2c222c37 matroskadec: fix potential mem leak
may or may not fix CID134 and CID135

Originally committed as revision 13636 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-02 23:37:14 +00:00
Aurelien Jacobs 34ae40971b matroskadec: avoid potential mem leak
fix CID120

Originally committed as revision 13635 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-02 23:27:14 +00:00
Aurelien Jacobs fe53fa253f reorganize matroska_add_stream() to fix potential mem leak and buffer overflow
fix CID44

Originally committed as revision 13634 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-02 23:07:41 +00:00
Aurelien Jacobs 4b3dc529f5 matroskadec: move ARRAY_SIZE() macro at top of the file
Originally committed as revision 13633 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-02 23:01:14 +00:00
Aurelien Jacobs 934b910ba0 matroskadec: use the proper timestamp scaling for index entries
Originally committed as revision 13602 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-01 14:41:53 +00:00