aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2009-03-14 19:03:26 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-03-30 11:43:28 -0400
commit6e1a63720228ef7fc3bd00b04dfb608064fbab4e (patch)
tree967cb8d64788393ea40c5ccef5ad4bc8760b6910 /drivers/media
parentbaadd7925c98968c94e9657272d91957a3ad0a41 (diff)
V4L/DVB (11091): cx18, ivtv: Ensure endianess for linemasks in VBI embedded in MPEG stream
The sliced VBI payloads that cx18 and ivtv would insert in the MPEG stream did not have consistent endianess for the linemasks in the payload (a big endian platform would write them out big endian). This change ensures the linemasks are always stored as little-endian in the MPEG stream to ensure cross platform consistency in parsing the generated MPEG stream. Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/cx18/cx18-vbi.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-vbi.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/media/video/cx18/cx18-vbi.c b/drivers/media/video/cx18/cx18-vbi.c
index 355737bff13e..99f9b2c86b0c 100644
--- a/drivers/media/video/cx18/cx18-vbi.c
+++ b/drivers/media/video/cx18/cx18-vbi.c
@@ -88,6 +88,8 @@ static void copy_vbi_data(struct cx18 *cx, int lines, u32 pts_stamp)
88 size = 4 + ((43 * line + 3) & ~3); 88 size = 4 + ((43 * line + 3) & ~3);
89 } else { 89 } else {
90 memcpy(dst + sd, "itv0", 4); 90 memcpy(dst + sd, "itv0", 4);
91 cpu_to_le32s(&linemask[0]);
92 cpu_to_le32s(&linemask[1]);
91 memcpy(dst + sd + 4, &linemask[0], 8); 93 memcpy(dst + sd + 4, &linemask[0], 8);
92 size = 12 + ((43 * line + 3) & ~3); 94 size = 12 + ((43 * line + 3) & ~3);
93 } 95 }
diff --git a/drivers/media/video/ivtv/ivtv-vbi.c b/drivers/media/video/ivtv/ivtv-vbi.c
index 5c5d1c462fef..f420d31b937d 100644
--- a/drivers/media/video/ivtv/ivtv-vbi.c
+++ b/drivers/media/video/ivtv/ivtv-vbi.c
@@ -185,6 +185,8 @@ static void copy_vbi_data(struct ivtv *itv, int lines, u32 pts_stamp)
185 size = 4 + ((43 * line + 3) & ~3); 185 size = 4 + ((43 * line + 3) & ~3);
186 } else { 186 } else {
187 memcpy(dst + sd, "itv0", 4); 187 memcpy(dst + sd, "itv0", 4);
188 cpu_to_le32s(&linemask[0]);
189 cpu_to_le32s(&linemask[1]);
188 memcpy(dst + sd + 4, &linemask[0], 8); 190 memcpy(dst + sd + 4, &linemask[0], 8);
189 size = 12 + ((43 * line + 3) & ~3); 191 size = 12 + ((43 * line + 3) & ~3);
190 } 192 }