diff options
author | Oyvind Repvik <nail@nslu2-linux.org> | 2005-08-25 14:53:20 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-08-25 14:53:20 +0000 |
commit | 64054157ebfd2ed65e80c5d48cdf120405c2d86c (patch) | |
tree | e3331fa7584f143cb907aae3329379e93fe92dbf /packages/libdvb/files/topf2ps.patch | |
parent | a8ff7b0afbcf476ec3139ae8fd88c79aa3b2c345 (diff) |
Add Topfield patch
Diffstat (limited to 'packages/libdvb/files/topf2ps.patch')
-rw-r--r-- | packages/libdvb/files/topf2ps.patch | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/packages/libdvb/files/topf2ps.patch b/packages/libdvb/files/topf2ps.patch new file mode 100644 index 0000000000..93503ca92d --- /dev/null +++ b/packages/libdvb/files/topf2ps.patch @@ -0,0 +1,123 @@ +diff -ruN libdvb-0.5.5/Makefile libdvb-0.5.5-topfield/Makefile +--- libdvb-0.5.5/Makefile 2004-09-16 04:56:21.000000000 +1000 ++++ libdvb-0.5.5-topfield/Makefile 2004-12-03 15:53:24.677184191 +1100 +@@ -68,7 +68,7 @@ + make -C libdvbmpeg clean + make -C sample_progs clean + make -C dvb-mpegtools clean +- rm include/*~ ++ -rm -f include/*~ + + dist: + mkdir libdvb-$(VERSION) +diff -ruN libdvb-0.5.5/dvb-mpegtools/Makefile libdvb-0.5.5-topfield/dvb-mpegtools/Makefile +--- libdvb-0.5.5/dvb-mpegtools/Makefile 2004-09-16 04:56:21.000000000 +1000 ++++ libdvb-0.5.5-topfield/dvb-mpegtools/Makefile 2004-12-03 12:38:58.000000000 +1100 +@@ -16,7 +16,7 @@ + pesplot pes2ts2 pes_repack split_mpg cut_mpg ts2ps ts2es\ + insert_pat_pmt get_http extract_pes extract_pes_payload\ + change_aspect_1_1 change_aspect_4_3 change_aspect_16_9 \ +- change_aspect_221_1 ++ change_aspect_221_1 topf2ps + + .PHONY: depend clean install uninstall + +diff -ruN libdvb-0.5.5/dvb-mpegtools/main.cc libdvb-0.5.5-topfield/dvb-mpegtools/main.cc +--- libdvb-0.5.5/dvb-mpegtools/main.cc 2004-09-16 04:56:21.000000000 +1000 ++++ libdvb-0.5.5-topfield/dvb-mpegtools/main.cc 2004-12-03 12:45:39.000000000 +1100 +@@ -52,7 +52,7 @@ + write(STDOUT_FILENO, buf, count); + } + +-#define PROGS 29 ++#define PROGS 30 + + char *prognames[PROGS+1] = { "streamtype", // 0 + "ts2pes", // 1 +@@ -83,6 +83,7 @@ + "change_aspect_4_3", + "change_aspect_16_9", + "change_aspect_221_1", // 28 ++ "topf2ps", + " " + }; + +@@ -116,6 +117,7 @@ + change_aspect_4_3_, + change_aspect_16_9_, + change_aspect_221_1_, // 28 ++ topf2ps_, + none_, + }; + +@@ -226,6 +228,11 @@ + cerr << "or insert_pat_pmt < <filename> (or pipe)" << endl; + break; + ++ case topf2ps_: ++ cerr << "usage: topf2ps <filename>" << endl; ++ cerr << "or topf2ps < <filename> (or pipe)" << endl; ++ break; ++ + case get_http_: + cerr << "usage: get_http <URL>" << endl; + break; +@@ -345,6 +352,10 @@ + } + break; + ++ case topf2ps_: ++ topf_to_ps(fd, STDOUT_FILENO); ++ break; ++ + case insert_pat_pmt_: + insert_pat_pmt( fd, STDOUT_FILENO); + break; +diff -ruN libdvb-0.5.5/include/transform.h libdvb-0.5.5-topfield/include/transform.h +--- libdvb-0.5.5/include/transform.h 2004-09-16 04:56:21.000000000 +1000 ++++ libdvb-0.5.5-topfield/include/transform.h 2004-12-03 12:49:20.000000000 +1100 +@@ -192,6 +192,7 @@ + void kpes_to_ts( p2p *p,uint8_t *buf ,int count ); + void setup_ts2pes( p2p *pa, p2p *pv, uint32_t pida, uint32_t pidv, + void (*pes_write)(uint8_t *buf, int count, void *p)); ++ void topf_to_ps(int fdin, int fdout); + void kts_to_pes( p2p *p, uint8_t *buf); + void pes_repack(p2p *p); + void extract_from_pes(int fdin, int fdout, uint8_t id, int es); +diff -ruN libdvb-0.5.5/libdvbmpeg/transform.c libdvb-0.5.5-topfield/libdvbmpeg/transform.c +--- libdvb-0.5.5/libdvbmpeg/transform.c 2004-09-16 04:56:21.000000000 +1000 ++++ libdvb-0.5.5-topfield/libdvbmpeg/transform.c 2004-12-03 12:50:55.000000000 +1100 +@@ -1247,6 +1247,30 @@ + + } + ++void topf_to_ps( int fdin, int fdout) ++{ ++ ++ uint16_t pida, pidv; ++ uint8_t buf[1880]; ++ int count = 1; ++ ++ if ((count = save_read(fdin, buf, sizeof(buf))) < 0) ++ perror("reading"); ++ ++ if ((count != sizeof(buf)) || (buf[0] != 'T') || (buf[1] != 'F') || ++ (buf[2] != 'r') || (buf[3] != 'c')) { ++ ++ fprintf(stderr, "Couldn't read Topfield header\n"); ++ return; ++ } ++ ++ pida = (buf[24] << 8) + buf[25]; ++ pidv = ((buf[26] & 0x7f) << 8) + buf[27]; ++ ++ fprintf(stderr, "apid %d (0x%02x)\n",pida,pida); ++ fprintf(stderr, "vpid %d (0x%02x)\n",pidv,pidv); ++ ts_to_pes(fdin, pida, pidv, 1); ++} + + #define INN_SIZE 2*IN_SIZE + void insert_pat_pmt( int fdin, int fdout) + + + |