Commit d7cf4489 authored by Michael Niedermayer's avatar Michael Niedermayer

use shorter names for the block type enum

Originally committed as revision 8664 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent ee77c2c9
...@@ -51,7 +51,7 @@ static void set_palette(AVFrame * frame, uint8_t * palette_buffer) ...@@ -51,7 +51,7 @@ static void set_palette(AVFrame * frame, uint8_t * palette_buffer)
{ {
uint32_t * palette = (uint32_t *)frame->data[1]; uint32_t * palette = (uint32_t *)frame->data[1];
int a; int a;
for(a = 0; a < VID_PALETTE_NUMCOLORS; a++) for(a = 0; a < 256; a++)
{ {
palette[a] = AV_RB24(&palette_buffer[a * 3]) * 4; // multiply all colors by 4 palette[a] = AV_RB24(&palette_buffer[a * 3]) * 4; // multiply all colors by 4
} }
...@@ -84,7 +84,7 @@ static int bethsoftvid_decode_frame(AVCodecContext *avctx, ...@@ -84,7 +84,7 @@ static int bethsoftvid_decode_frame(AVCodecContext *avctx,
switch(block_type = *buf++) switch(block_type = *buf++)
{ {
case PALETTE_BLOCK: set_palette(&vid->frame, buf); return 0; case PALETTE_BLOCK: set_palette(&vid->frame, buf); return 0;
case VIDEO_YOFFSET_DIFFERENCE_FRAME_BLOCK: case VIDEO_YOFF_P_FRAME:
yoffset = bytestream_get_le16(&buf); yoffset = bytestream_get_le16(&buf);
if(yoffset >= avctx->height) { return -1; } if(yoffset >= avctx->height) { return -1; }
destination += vid->frame.linesize[0] * yoffset; destination += vid->frame.linesize[0] * yoffset;
...@@ -99,7 +99,7 @@ static int bethsoftvid_decode_frame(AVCodecContext *avctx, ...@@ -99,7 +99,7 @@ static int bethsoftvid_decode_frame(AVCodecContext *avctx,
while(length > line_remaining) while(length > line_remaining)
{ {
if(rle_num_bytes < 0x80) { bytestream_get_buffer(&buf, destination, line_remaining); } if(rle_num_bytes < 0x80) { bytestream_get_buffer(&buf, destination, line_remaining); }
else if(block_type == VIDEO_FULL_FRAME_BLOCK) { memset(destination, buf[0], line_remaining); } else if(block_type == VIDEO_I_FRAME) { memset(destination, buf[0], line_remaining); }
length -= line_remaining; // decrement the number of bytes to be copied length -= line_remaining; // decrement the number of bytes to be copied
destination += line_remaining + wrap_to_next_line; // skip over extra bytes at end of frame destination += line_remaining + wrap_to_next_line; // skip over extra bytes at end of frame
line_remaining = avctx->width; line_remaining = avctx->width;
...@@ -108,7 +108,7 @@ static int bethsoftvid_decode_frame(AVCodecContext *avctx, ...@@ -108,7 +108,7 @@ static int bethsoftvid_decode_frame(AVCodecContext *avctx,
// copy any remaining bytes after / if line overflows // copy any remaining bytes after / if line overflows
if(rle_num_bytes < 0x80) { bytestream_get_buffer(&buf, destination, length); } if(rle_num_bytes < 0x80) { bytestream_get_buffer(&buf, destination, length); }
else if(block_type == VIDEO_FULL_FRAME_BLOCK) { memset(destination, *buf++, length); } else if(block_type == VIDEO_I_FRAME) { memset(destination, *buf++, length); }
line_remaining -= length; line_remaining -= length;
destination += length; destination += length;
} }
......
#define VID_PALETTE_NUMCOLORS 256
enum BethsoftVidBlockType enum BethsoftVidBlockType
{ {
PALETTE_BLOCK = 0x02, PALETTE_BLOCK = 0x02,
FIRST_AUDIO_BLOCK = 0x7c, FIRST_AUDIO_BLOCK = 0x7c,
AUDIO_BLOCK = 0x7d, AUDIO_BLOCK = 0x7d,
VIDEO_FULL_FRAME_BLOCK = 0x03, VIDEO_I_FRAME = 0x03,
VIDEO_DIFFERENCE_FRAME_BLOCK = 0x01, VIDEO_P_FRAME = 0x01,
VIDEO_YOFFSET_DIFFERENCE_FRAME_BLOCK = 0x04, VIDEO_YOFF_P_FRAME = 0x04,
FINISHED_BLOCK = 0x14, EOF_BLOCK = 0x14,
}; };
...@@ -119,7 +119,7 @@ static int read_frame(BVID_DemuxContext *vid, ByteIOContext *pb, AVPacket *pkt, ...@@ -119,7 +119,7 @@ static int read_frame(BVID_DemuxContext *vid, ByteIOContext *pb, AVPacket *pkt,
vid->video_pts += vid->bethsoft_global_delay + get_le16(pb); vid->video_pts += vid->bethsoft_global_delay + get_le16(pb);
// set the y offset if it exists (decoder header data should be in data section) // set the y offset if it exists (decoder header data should be in data section)
if(block_type == VIDEO_YOFFSET_DIFFERENCE_FRAME_BLOCK){ if(block_type == VIDEO_YOFF_P_FRAME){
if(get_buffer(pb, &vidbuf_start[vidbuf_nbytes], 2) != 2) if(get_buffer(pb, &vidbuf_start[vidbuf_nbytes], 2) != 2)
goto fail; goto fail;
vidbuf_nbytes += 2; vidbuf_nbytes += 2;
...@@ -134,7 +134,7 @@ static int read_frame(BVID_DemuxContext *vid, ByteIOContext *pb, AVPacket *pkt, ...@@ -134,7 +134,7 @@ static int read_frame(BVID_DemuxContext *vid, ByteIOContext *pb, AVPacket *pkt,
vidbuf_start[vidbuf_nbytes++] = rle_num_bytes; vidbuf_start[vidbuf_nbytes++] = rle_num_bytes;
if(rle_num_bytes > 0x80){ // rle sequence if(rle_num_bytes > 0x80){ // rle sequence
if(block_type == VIDEO_FULL_FRAME_BLOCK) if(block_type == VIDEO_I_FRAME)
vidbuf_start[vidbuf_nbytes++] = get_byte(pb); vidbuf_start[vidbuf_nbytes++] = get_byte(pb);
bytes_copied += rle_num_bytes - 0x80; bytes_copied += rle_num_bytes - 0x80;
} else if(rle_num_bytes){ // plain sequence } else if(rle_num_bytes){ // plain sequence
...@@ -186,8 +186,8 @@ static int vid_read_packet(AVFormatContext *s, ...@@ -186,8 +186,8 @@ static int vid_read_packet(AVFormatContext *s,
switch(block_type){ switch(block_type){
case PALETTE_BLOCK: case PALETTE_BLOCK:
url_fseek(pb, -1, SEEK_CUR); // include block type url_fseek(pb, -1, SEEK_CUR); // include block type
ret_value = av_get_packet(pb, pkt, 3 * VID_PALETTE_NUMCOLORS + 1); ret_value = av_get_packet(pb, pkt, 3 * 256 + 1);
if(ret_value != 3 * VID_PALETTE_NUMCOLORS + 1){ if(ret_value != 3 * 256 + 1){
av_free_packet(pkt); av_free_packet(pkt);
return AVERROR_IO; return AVERROR_IO;
} }
...@@ -205,13 +205,13 @@ static int vid_read_packet(AVFormatContext *s, ...@@ -205,13 +205,13 @@ static int vid_read_packet(AVFormatContext *s,
pkt->stream_index = 1; pkt->stream_index = 1;
return (ret_value != audio_length ? AVERROR_IO : ret_value); return (ret_value != audio_length ? AVERROR_IO : ret_value);
case VIDEO_DIFFERENCE_FRAME_BLOCK: case VIDEO_P_FRAME:
case VIDEO_YOFFSET_DIFFERENCE_FRAME_BLOCK: case VIDEO_YOFF_P_FRAME:
case VIDEO_FULL_FRAME_BLOCK: case VIDEO_I_FRAME:
return read_frame(vid, pb, pkt, block_type, s, return read_frame(vid, pb, pkt, block_type, s,
s->streams[0]->codec->width * s->streams[0]->codec->height); s->streams[0]->codec->width * s->streams[0]->codec->height);
case FINISHED_BLOCK: case EOF_BLOCK:
if(vid->nframes != 0) if(vid->nframes != 0)
av_log(s, AV_LOG_VERBOSE, "reached terminating character but not all frames read.\n"); av_log(s, AV_LOG_VERBOSE, "reached terminating character but not all frames read.\n");
vid->is_finished = 1; vid->is_finished = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment