This is an automatic generated email to let you know that the following patch were queued at the http://git.linuxtv.org/v4l-utils.git tree:
Subject: libv4l2rds: DI segment order was swapped Author: Hans Verkuil <[email protected]> Date: Sun Jul 27 21:31:16 2014 +0200 The segment number of bit 3 of the DI code is 0, increasing to segment number 3 for bit 0. The code assumed segment S matched bit S, but it is bit (3 - S) instead. Very confusing choice in the standard, so I'm not surprised this was broken. Signed-off-by: Hans Verkuil <[email protected]> lib/libv4l2rds/libv4l2rds.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) --- http://git.linuxtv.org/v4l-utils.git?a=commitdiff;h=66e6a25b682debfa328b23056ff4050683054569 diff --git a/lib/libv4l2rds/libv4l2rds.c b/lib/libv4l2rds/libv4l2rds.c index efc8a7d..596cd19 100644 --- a/lib/libv4l2rds/libv4l2rds.c +++ b/lib/libv4l2rds/libv4l2rds.c @@ -807,28 +807,28 @@ static uint32_t rds_decode_group0(struct rds_private_state *priv_state) /* bit 2 of block B contains 1 bit of the Decoder Control Information (DI) * the segment number defines the bit position - * New bits are only accepted the segments arrive in the correct order */ + * New bits are only accepted if the segments arrive in the correct order */ bool bit2 = grp->data_b_lsb & 0x04; if (segment == 0 || segment == priv_state->next_di_segment) { switch (segment) { case 0: priv_state->new_di = set_bit(priv_state->new_di, - V4L2_RDS_FLAG_STEREO, bit2); + V4L2_RDS_FLAG_DYNAMIC_PTY, bit2); priv_state->next_di_segment = 1; break; case 1: priv_state->new_di = set_bit(priv_state->new_di, - V4L2_RDS_FLAG_ARTIFICIAL_HEAD, bit2); + V4L2_RDS_FLAG_COMPRESSED, bit2); priv_state->next_di_segment = 2; break; case 2: priv_state->new_di = set_bit(priv_state->new_di, - V4L2_RDS_FLAG_COMPRESSED, bit2); + V4L2_RDS_FLAG_ARTIFICIAL_HEAD, bit2); priv_state->next_di_segment = 3; break; case 3: priv_state->new_di = set_bit(priv_state->new_di, - V4L2_RDS_FLAG_DYNAMIC_PTY, bit2); + V4L2_RDS_FLAG_STEREO, bit2); /* check if the value of DI has changed, and store * and signal DI update in case */ if (handle->di != priv_state->new_di) { _______________________________________________ linuxtv-commits mailing list [email protected] http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits
