Menu

#8 tivodecode-0.3pre5 with TS support

open
nobody
tivodecode (7)
5
2014-08-23
2011-02-01
Anonymous
No

I've been using tivodecode-0.3pre3 for some time with TS files with a lot of success.

I can't take credit for this update, reneg, posted it here: http://www.tivocommunity.com/tivo-vb/showthread.php?t=446048

I thought it would be good to share the update that allows tdcat to work with tivo files that are not encrypted.

I've also updated the CHANGELOG to reflect changes made to previous version that were not included in the CHANGELOG.

--- tivodecode-0.3pre3/tdcat.c 2010-02-18 15:45:46.000000000 +1300
+++ tivodecode-0.3pre5/tdcat.c 2011-02-01 18:46:27.525320300 +1300
@@ -187,7 +187,7 @@
if ((chunk = read_tivo_chunk (hfh, &hread_wrapper)) == NULL)
return 8;

- if (chunk->data_size && chunk->type == TIVO_CHUNK_PLAINTEXT_XML)
+ if (chunk->data_size && chunk->type == TIVO_CHUNK_PLAINTEXT_XML && chunk->id == 3)
{
setup_metadata_key (&metaturing, chunk, mak);
free (chunk);
@@ -196,11 +196,13 @@

if ((o_chunk_1 && chunk->id == 1) || (o_chunk_2 && chunk->id == 2))
{
+ if (chunk->type == TIVO_CHUNK_ENCRYPTED_XML)
+ {
prepare_frame(&metaturing, 0, 0);
skip_turing_data(&metaturing, (size_t)(chunk_start - current_meta_stream_pos));
decrypt_buffer(&metaturing, chunk->data, chunk->data_size);
current_meta_stream_pos = chunk_start + chunk->data_size;
-
+ }
if (fwrite (chunk->data, 1, chunk->data_size, ofh) != chunk->data_size)
{
perror("write chunk");

Discussion

  • Anonymous

    Anonymous - 2011-02-07

    Same fix applied to tivodecode.c

    diff -u tivodecode-0.3pre3/tivodecode.c tivodecode-0.3pre5/tivodecode.c
    --- tivodecode-0.3pre3/tivodecode.c 2010-02-18 15:50:40.000000000 +1300
    +++ tivodecode-0.3pre5/tivodecode.c 2011-02-04 14:44:07.154313100 +1300
    @@ -253,7 +253,7 @@
    if ((chunk = read_tivo_chunk (hfh, &hread_wrapper)) == NULL)
    return 8;

    - if (chunk->data_size && chunk->type == TIVO_CHUNK_PLAINTEXT_XML )
    + if (chunk->data_size && chunk->type == TIVO_CHUNK_PLAINTEXT_XML && chunk->id == 3)
    {
    if ( IS_VVVERBOSE )
    dump_tivo_chunk(chunk);
    @@ -279,10 +279,13 @@
    return 8;
    }

    + if (chunk->type == TIVO_CHUNK_ENCRYPTED_XML)
    + {
    prepare_frame(&metaturing, 0, 0);
    skip_turing_data(&metaturing, (size_t)(chunk_start - current_meta_stream_pos));
    decrypt_buffer(&metaturing, chunk->data, chunk->data_size);
    current_meta_stream_pos = chunk_start + chunk->data_size;
    + }

    if (IS_VVVERBOSE)
    dump_tivo_chunk(chunk);

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.